2008-11-25

PHP中的随机数生成

Posted in PHP at 12:33 Author:仲远

标签:

不管哪种语言,都会涉及到生成一些随机数。并且过程都是大同小异:先设置一个种子点,再进行随机数的生成。如果没有设置种子点,实际上产生的是一个伪随机数序列。也就是说,在一次生成过程中,虽然能够产生一个随机数的序列,但是在多次生成中,这个序列是一模一样的。所以要设置一个种子点,这个种子点通常也要是随机的,所以一个比较好的方法就是以时间为种子点。

在PHP中,要生成一个随机数,可以经过如下三个步骤:

  1. //第一步:初始化种子
  2. $seedarray =microtime();
  3. $seedstr =split(" ",$seedarray,5);
  4. $seed =$seedstr[0]*1000000;
  5.  
  6. //第二步:使用种子初始化随机数发生器
  7. srand($seed);
  8.  
  9. //第三步:生成指定范围内的随机数
  10. $random =rand(0,1000);

其中,前面两步都不需要进行修改,就是最后一步,(0,1000)表示在0到1000中产生一个随机数(包括0在内),这个范围可以修改成你自己需要的范围。

还有一种生成随机数的更加简化的代码:

  1. srand((double)microtime()*1000000);
  2. $random =rand(0,1000);

其中,microtime()返回了两个值:当前毫秒数和时间戳。由于我们只是要提取随机数,因而利用毫秒数即可。(double)microtime()的意思就是只返回当前的毫秒值。microtime()是以秒为单位的毫秒数,因而值都是小数,乘以1000000将其换算为整数。第二句代码表示在0到1000中生成一个随机数。

以上两种方法均可以在PHP中生成一个随机数。

本文可以自由转载,转载时请保留全文并注明出处:
转载自仲子说 [ http://www.wangzhongyuan.com/ ]
原文链接:

1 Comment »

  1. Spirit said,

    2008年November25日 at 14:33

    还是Java省事儿~

Leave a Comment

*
To prove you're a person (not a spam script), type the security text shown in the picture. Click here to regenerate some new text.
Click to hear an audio file of the anti-spam word