2013-04-25 2 views
4

Как создать генератор случайных чисел, который вычисляет случайное число на основе вероятности?случайное число, основанное на вероятности в Excel

Например, у меня есть следующие номера с вероятностью они будут происходить, начиная в ячейке A1 и B1:

100 5% 
75 10% 
50 42% 
30 30% 
15 5% 
0 8% 

Таким образом, формула будет «случайным» вернуть число «15» 5% всех раз.

+0

Следует ли интерполировать вероятности? Например. может ли генератор случайных чисел вырабатывать значение «80»? «80,5»? Целые-только? Максимальная/минимальная? –

+0

Генератор должен генерировать целые числа 0,15,30,50,75,100 – Ryan

ответ

4

Чуть меньше накладные расходы:

Сделать справочную таблицу ваших ценностей и нарастающий итог вероятности:

C D E 
100 5% 0 
75 10% 5% 
50 42% 15% 
30 30% 57% 
15 5% 87% 
0 8% 92% 

Затем LookUp 0-1 случайного числа на этой диаграмме. =LOOKUP(RAND(),$E$2:$E$7,$C$2:$C$7)

Я создал 5224 номера и подготовил эту сводную диаграмму результатов. Обновление осведомителей привело к тому, что процентные ставки немного колебались вокруг целей, но все попытки выглядели хорошо.

Row Labels Count Percentage Target 
     0  421  8.06%  8% 
     15  262  5.02%  5% 
     30 1608  30.78%  30% 
     50 2160  41.35%  42% 
     75  490  9.38%  10% 
    100  283  5.42%  5% 
Grand Total 5224 100.00% 

Или вы могли бы сделать это с двумя ячейками и длинный, если оператор:. =RAND() =IF(A9<0.05,100,IF(A9<0.15,75, ... 0))...

+0

Обратите внимание, что если вы попытаетесь объединить rand в оператор if, вы закончите с другой вероятностной кривой, чем если бы вы оставили их как две отдельные формулы и только вычислить RAND один раз. –

+0

Если вам нужно сделать это несколько раз, это может стоить делать как макрос, а не как формулу. –

+0

Это частично работает, но из 100 испытаний «0» никогда не возвращается, и я получаю «# N/A» 5 раз. – Ryan

1

Вы можете использовать vlookup и randbetween.

Вы хотите использовать randbetween. http://office.microsoft.com/en-us/excel-help/randbetween-HP005209230.aspx

ВПР: http://office.microsoft.com/en-us/excel-help/vlookup-HP005209335.aspx

Заливка один столбец с порядковыми номерами в пределах от 1-100. Заполните еще один столбец с 5 100, 10 75-х годов, 42 50-х годов, и т.д ...

Теперь ...

=VLOOKUP(RANDBETWEEN(1,100),A1:B100,2) 

Там, наверное, лучший способ сделать это, но я попробовал это, и это, кажется, Работа.

+0

Это решение не работает для меня, потому что вероятность может измениться в зависимости от другой функции на другой вкладке – Ryan

2

Эта функция поставляется как часть анализа инструментария добавить в Вы можете найти это в настройках Excel -> add ins -> управлять добавками.

Вы хотите случайное генерирование чисел, а затем выберите «дискретное» распределение. Ввод в это - таблица, которую вы указали в своем сообщении. .

«Дискретный Характерно значением и связанный с диапазоном вероятности Диапазон должен содержать две колонки: В левой колонке указаны значения, а столбец правой содержит вероятности, связанные со значением в этой строке Сумму из. вероятности должны быть равны 1. "

Предложение jsarma также является хорошим ....