"PHP" / Говнокод #25632 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
for ($j = 0; $j < rand(2, 5); $j++) {
    // тут какой-то другой код
}

На каждой новой итерации rand() пересчитывается, т.е. цикл сам не знает от нуля до скольки он будет

Запостил: antosha antosha, (Updated )

Комментарии (10) RSS

  • Разбирающимся в теорвере читателям предлагается посчитать вероятность, с которой цикл будет бесконечным
    Ответить
  • От нуля до 2, 3, 4 или 5 цикл будет проходить с вероятностью 25%, до остальных чисел — 0%.

    Перевёл для тебя на PHP...
    <?php
    
    const START = 2;
    const END   = 5;
    const COUNT = 1e8;
    
    $result = array_reduce(range(START, END), function($a, $v) {
    	$a[$v] = 0;
    	return $a;
    }, []);
    
    for($i = 0; $i < COUNT; $i++) {
    	$result[rand(START, END)]++;
    }
    
    print_r(array_map(function($v) {
    	return vsprintf("%f%%", [100 * $v / COUNT]);
    }, $result));
    И выполнил в терминале...
    ➜ php -f test.php
    Array
    (
        [2] => 25.002831%
        [3] => 24.996276%
        [4] => 24.999448%
        [5] => 25.001445%
    )
    Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8