Вопрос

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

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

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

Это было полезно?

Решение

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

например ,

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

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

Редактировать

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

Алгоритм перемешивания по сути работает следующим образом:

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

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

Другие советы

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

$numbers = range(1, 20);
shuffle($numbers);
foreach ($numbers as $number) {
    echo "$number ";
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top