PHP随机数

时间:2009-10-29 02:55:44

标签: php random numbers

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

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

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

2 个答案:

答案 0 :(得分:9)

最简单的方法是将shuffle与包含100个数字

的数组一起使用

e.g。

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

另请参阅range功能

修改

我想我可能会对shuffle做些什么补充一点。尽管php.net没有明确说明,但很可能基于Fisher-Yates shuffle algorithm的现代版本。有关其工作原理的视频演示,请参阅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. 希望有所帮助。

答案 1 :(得分:3)

请参阅shuffle()的示例:

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