2017-02-07 4 views
-3

Я генерации случайного числа каждые 5 минут:РНР генерирует случайное число в диапазоне от 2-х наборов в интервале времени

$seed = floor(time()/(60*5)); 
srand($seed); 
$random = rand(2,30); 

Я хотел бы рандомизировать номер либо к значению 1 или число между 2 - 30 на основе на 50/50 шанс?

Возможно ли это?

+2

Сначала 50 \ 50 рандов, то ваша другая логика, вы пробовали это? – nogad

+0

Вы также имеете в виду, что вы не будете генерировать один и тот же номер каждые 5 минут? – Perumal

+0

"Примечание: нет необходимости высевать генератор случайных чисел с помощью srand() или mt_srand(), поскольку это делается автоматически." – nogad

ответ

0
$seed = floor(time()/(60*5)); 
srand($seed); 
$random = rand(1,rand(2,30)); 
+0

Я думаю, что это не работает. Число 30 очень маловероятно. –

+0

* «Как насчет этого? *» - Ум ... разве это не редактирование? http://stackoverflow.com/posts/42099324/edit или это ваше решение? –

+0

ум отвечает здесь? это решение или нет? если нет, удалите его и внесите в вопрос свой вопрос –

1
$x = rand(0, 1) ? 1 : rand(2,30); 
+0

Почему так слишком сложно? почему бы не rand (0,1)? –

+0

Хорошо, я отредактирую свой ответ – MackProgramsAlot

0

Здесь вы идете. Если первый rand возвращает 1, то это даст вам результат rand(2,30) в противном случае она станет 1

$random = rand(0,1) == 1 ? rand(2,30) : 1; 
0

Вы можете просто рандомизации между 1 и 58:

$seed = floor(time()/(60*5)); 
    srand($seed); 
    $random = rand(1,58); 
    if ($random > 30) $random = 1; 

2..30 являются 29 цифры, 1 и 31 ... 58 также являются 29 номерами -> 50/50