Функция управляемого рандома
function rundom($percent = 50) {
return (mt_rand(1, 100) + (100 - (100 - $percent)) > 100 ? 1 : 0);
}Использовать так:
/*Укажите в функции rundom значение от 0 до 100, например: rundom(75) , функция будет возвращать 0 или 1, если выпадет 1, то сработал диапазон в 75%, если 0 , то 25%*/
if(rundom(20) == 1) {
echo 'Шанс 20%';
} else {
echo 'Шанс 80%';
}Проверить можете на выборке, например в 1млн. так:
$m = 0;$n = 0;
for($i = 0; $i < 1000000; $i++) {
if(rundom(20) == 1) {
$n++;
} else {
$m++;
}
}
echo $n . '|' . $m;При данном условии приблизительно будет 200000/800000 соотношение выпадений.
---
Функция отлично пригодится для игроделов.