Вопрос
мне нужно распечатать числа 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.Также смотрите этот превосходный вспышка демонстрация
Алгоритм перемешивания по сути работает следующим образом:
- Для заданного набора элементов от A1 до AN, и n = N;
- Случайным образом выберите элемент Ak между A1 и An включительно
- Поменяйте местами Ak и An
- Установите n = n - 1
- Повторите, начиная с шага 2
Надеюсь, это поможет.
Другие советы
См. пример для shuffle ()
:
$numbers = range(1, 20);
shuffle($numbers);
foreach ($numbers as $number) {
echo "$number ";
}