berkut
Новичок
процент вероятности rand(+)
Нужно вывести случайный эл-т массива, но с определённой долей вероятности.
Первое что пришло в голову, находится ниже, но алгоритм очень не оптимальный.
Нужно вывести случайный эл-т массива, но с определённой долей вероятности.
Первое что пришло в голову, находится ниже, но алгоритм очень не оптимальный.
PHP:
$arr = array('red', 'green', 'blue'); //массив эл-ов
$per = array(1, 70, 29);//процент вероятности для каждого эл-а масс. $arr
$s = $q = sizeof($per);
for ($i=0; $i<$s; $i++) {
$arrg = array_merge($arrg, array_fill($q, $per[$i], $arr[$i]));
$q+= $per[$i];
}
//shuffle($arrg);
$rand = rand(0, sizeof($arrg) - 1);
$random_elem = $arrg[$rand];