Выберите рандомали для контеста от 12 до 1 соотношение php
Когда кто-то вводит детали на моей странице для конкурса, я хочу, чтобы человек выиграл с соотношением 1:12, я использую код ранда, и он не работает, как показывает 500 записей и только 14 победителей
Я использую этот код
$rand = mt_rand(1, 12);
$rand = mt_rand(1, 400);
if($rand=='4'){
mysql_query("UPDATE
записьset
выиграть= 'yes' WHERE ip='$ip' AND
Эл. адрес= '$_SESSION[email]'");
@include'win.php';
} else {
mysql_query("UPDATE
записьset
выиграть= 'no' WHERE ip='$ip' AND
Эл. адрес= '$_SESSION[email]'");
@include'lose.php';
}1
2 ответа
mt_rand
является случайным, поэтому вы можете выполнить это 1000 раз и не иметь равную долю для каждого значения.
Если вы хотите точно соотношение 1:12, я думаю, что вы можете хранить в базе данных участников и для каждой дюжины, запустить mt_rand
и отправьте письмо победителю.
Если вы хотите сделать это "в процессе", вы должны контролировать отклонение после каждого участия (если вы действительно хотите иметь 10 победителей после 120 попыток)
Одним из способов может быть уменьшение максимального значения коэффициента для каждого "конкурса" без победителя.
Итак, 1-й игрок: соотношение 1-12 2-й игрок: соотношение 1-11 3-й игрок: соотношение 1-10... 12-й игрок: соотношение 1-1
Таким образом, вы будете иметь победителя по крайней мере каждые 12 игроков.
После того, как каждый игрок выиграет приз, вы должны отрегулировать отклонение, увеличивая соотношение.