не. а о чем я ?Ты сам то понял что написал?
я тоже так подумал. сделать прямую на которой вероятность выбора пользователя от 0 до 100 отразить длинной его отрезка на этой прямой и потом случайно ткнуть на ней, в чей отрезок попал, тот и выбран))) по сути ваш ответ то же самое, только более приближено к математике. спасибо! с наступающим!Давай не от 0 до 1, а int от 0 до 100 например (хватит?).
Тогда делаешь массив, в котором каждый id пользователя повторяется заданное число раз, после чего берешь случайный элемент.
Хотя про "относительно" непонятно, относительно чего?
Это — не «случайным образом». А то, что Вы назвали «относительной вероятностью», называется простым термином «вес».Нужно выбрать случайным образом 1 пользователя из этого списка учитывая то что каждый пользователь имеет относительную вероятность от 0 до 1.
/**
* weighted_random_simple()
* Pick a random item based on weights.
*
* @param array $values Array of elements to choose from
* @param array $weights An array of weights. Weight must be a positive number.
* @return mixed Selected element.
*/
function weighted_random_simple($values, $weights){
$count = count($values);
$i = 0;
$n = 0;
$num = mt_rand(0, array_sum($weights));
while($i < $count){
$n += $weights[$i];
if($n >= $num){
break;
}
$i++;
}
return $values[$i];
}
да понятно все. просто привел код и статью на тему, для будущих покаленийCyrill, если ты еще не понял, то это с точностью до знака реализация того алгоритма,что я изложил в своем посте![]()