题
我需要以随机顺序打印数字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算法基本上是这样的:
- 对于给定的元素组A1到AN,并且n = N;
- 随机选择A1和An之间的元素Ak
- 交换Ak和An
- 设置n = n - 1
- 从第2步开始重复 醇>
希望有所帮助。
其他提示
请参阅 shuffle()
的示例:
$numbers = range(1, 20);
shuffle($numbers);
foreach ($numbers as $number) {
echo "$number ";
}
不隶属于 StackOverflow