Выберите рандомали для контеста от 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 игроков.

После того, как каждый игрок выиграет приз, вы должны отрегулировать отклонение, увеличивая соотношение.

Другие вопросы по тегам