Klaus
SEO Cthulhu
rand c приоритетом
Привет all
нужен рандом с приоритетом:
например имеем 10 чисел от 1 до 10
при выборке рандомом нужно приоритет отдать большим числам, т.е. чем больше число тем больше приоритет, но при этом чтобы меньшие числа были обязательно задействованы хотя бы один раз. Выборка происходит не менее 3х раз умноженное на кол-во чисел, т.е. в моем случае выборка идет не менее 30 раз.
Покопался в инете - кое-что набросал:
все вроде хорошо и рандом прекрасно работает
однако имею проблему выпадения некоторых чисел из конечной выборки.
натолкните на мысль, пожалуйста, что тут можно предпринять?
Привет all
нужен рандом с приоритетом:
например имеем 10 чисел от 1 до 10
при выборке рандомом нужно приоритет отдать большим числам, т.е. чем больше число тем больше приоритет, но при этом чтобы меньшие числа были обязательно задействованы хотя бы один раз. Выборка происходит не менее 3х раз умноженное на кол-во чисел, т.е. в моем случае выборка идет не менее 30 раз.
Покопался в инете - кое-что набросал:
PHP:
$max = 10; #кол-во цифр
$cycle = 3; #кол-во циклов
$rec = $cycle*$max; #кол-во выборок
for ($i=1;$i<=$max;$i++) {
$figure[$i] = 0;
}
#функция с приоритетом для чисел имеющих меньшее значение
function low_rnd($max) {
$candidate = mt_rand(1,$max);
if ( mt_rand(1, 2) == 1 ){
return $candidate;
}
elseif ( $candidate > 1 ) {
return low_rnd( $max / 2 );
}
else {
return 1;
}
}
#функция с приоритетом для чисел имеющих большее значение
function high_rnd($max) {
return $max - low_rnd($max) + 1;
}
#смотрим процентное соотношение выпадения чисел
for ($i=0; $i<$rec;$i++) {
$figure[high_rnd($max)]++;
}
echo "<pre>";
print_r($figure);
echo "</pre>";
однако имею проблему выпадения некоторых чисел из конечной выборки.
натолкните на мысль, пожалуйста, что тут можно предпринять?