PHP случайные числа - PullRequest
       5

PHP случайные числа

0 голосов
/ 29 октября 2009

Мне нужно распечатать цифры 1-100 в случайном порядке. оператор печати должен быть:

echo 'h {'. $ Num. '}';

какой самый короткий код для этого?

Ответы [ 2 ]

9 голосов
/ 29 октября 2009

Самый простой способ - использовать shuffle с массивом, содержащим 100 чисел

, например

$sequence = range(1, 100);
shuffle($sequence);
foreach ($sequence as $num) {
    echo 'h{'.$num.'}';
}

Также см. диапазон функция

EDIT

Я подумал, что могу добавить немного о том, что делает шаффл. Хотя php.net прямо не говорит об этом, он, вероятно, основан на современной версии алгоритма перемешивания Фишера-Йейтса . Для демонстрации видео, как это работает, см. http://www.youtube.com/watch?v=Ckh2DJrP7F4. Также посмотрите эту превосходную вспышку демонстрацию

Алгоритм перемешивания по сути работает так:

  1. Для заданного набора элементов от А1 до AN и n = N;
  2. Произвольно выбрать элемент Ak между A1 и An включительно
  3. Поменяйте местами Ак и Ан
  4. Установить n = n - 1
  5. Повторите с шага 2

Надеюсь, это поможет.

3 голосов
/ 29 октября 2009

См. Пример для shuffle():

$numbers = range(1, 20);
shuffle($numbers);
foreach ($numbers as $number) {
    echo "$number ";
}
...