уже мозг сломал
задача вроде простая, но не знаю как реализовать
вернее пока не придумал
суть в следущем – сделать что бы определённое число из массива выпадало с заданным процентом вероятности
язык желательно php, но не принципиально
заранее спасибы
6 мая 2008 в 12:04
Самый простой и очевидный это #2.
На нем же можно и модификации построить при желании
6 мая 2008 в 10:00
предложили такой вариант
<?php
$x=50; // размер масива случайных чисел
$y=5; // как часто повторяться
$s=10; // какое число повторять
for($i=0;$i<$x;$i++)
if($i%$y) $arr[]=$s;
else $arr[]=rand(0, 100);
?>
4 мая 2008 в 18:05
Предлагаю "индусский" вариант
char percentage[10]="0011111112";
return (percentage[rand()%10]-'0');
4 мая 2008 в 18:03
Ну самый простой способ: считаешь сумму вероятностей, получаешь случайное число в диапазоне от ноля до этой суммы, и смотришь, в какой диапазон оно попало.
Тоесть, допустим есть массив из трех элементов. Первый должен выпадать с вероятностью 20%, второй – 70%, и третий – 10%.
считаем сумму: s =0,2 +0,7 +0,1 =1
Генерируем случайное число x в диапазоне [0..1].
| 0 < x < 0,2 – выпадает первый элемент
| 0,2 < x < 0,9 – выпадает второй элемент
| 0,9 < x < 1 – третий