我需要以随机顺序打印数字1-100。 print语句应为:

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

执行此操作的最短代码是什么?

有帮助吗?

解决方案

最简单的方法是使用包含数组的随机播放 100个数字

e.g。

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

另请参阅范围功能

修改

我想我可能会对shuffle做些什么补充一点。尽管php.net没有明确说明,但很可能是基于现代版的 Fisher -Yates shuffle算法。有关其工作原理的视频演示,请参阅 http://www.youtube.com/watch? v = Ckh2DJrP7F4 。另请参阅这个优秀的 flash 演示

shuffle算法基本上是这样的:

  1. 对于给定的元素组A1到AN,并且n = N;
  2. 随机选择A1和An之间的元素Ak
  3. 交换Ak和An
  4. 设置n = n - 1
  5. 从第2步开始重复
  6. 希望有所帮助。

其他提示

请参阅 shuffle() 的示例:

$numbers = range(1, 20);
shuffle($numbers);
foreach ($numbers as $number) {
    echo "$number ";
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top