Home > php教程 > php手册 > php随机数字代码

php随机数字代码

WBOY
Release: 2016-06-13 09:28:28
Original
1427 people have browsed it

php随机数字代码

   今天,有朋友咨询烈火PHP随机数字的问题,这是PHP的基础问题,大家可以参考一下烈火提供的PHP手册,由于时间关系,小编也懒的写,在网上找了一些例子,综合在一起,希望对大家有所帮助吧,如有问题请在下面说出来。

  

  //seed用户自定义函数以微秒作为种子

  function seed()

  {

  list($msec, $sec) = explode(' ', microtime());

  return (float) $sec;

  }

  //播下随机数发生器种子,用srand函数调用seed函数的返回结果

  srand(seed());

  //输出产生的随机数,随机数的范围为10-100

  echo rand(10,100);

  ?>

  上面这个和下面这个不是没什么不同吗?都是随机输出10-100之间的数,新人学习,可能问的太简单了呵呵

  

  echo rand(10,100);

  ?>

  mt_rand(10,100);

  srand是种子,如果不设的话默认是1

  rand一般是利用种子做参数的一种固定的运算

  你试一下就知道了,不设种子或者设一个固定的种子,运行rand

  然后再关了浏览器再开,再运行rand

  你会发现结果一直是一样的

  但是如果用一个随机数做种子,那每次运行结果就近似于随机的

  先说rand()函数吧,rand([int min], [int max]) 本函数从min和max之间取一个随机数。若没有指定随机数的最大及最小范围,本函数会自动的从0到RAND_MAX中取一个随机数。

  但是如果只用rand()这个函数,随机数的乱度很大,每次在取随机数之前最好使用srand()函数,以配置新的随机数种子。

  解释一下下面这个用法(一般都是这样用这两个函数的):

  srand((double)microtime()*1000000);

  $rand_number= rand();

  microtime()返回了两个值:当前毫秒和时间戳,我们要提取随机数,只能从毫秒中取一个随机数,(double)microtime()就只返回当前的毫秒值。

  microtime()是以秒为单位的毫秒数,因而值都是小数,乘以1000000将其换算为整数。

  ;它们的工作流程如下:

  (1):首先,给srand()提供一个”种子”;,它是一个unsigned_int类型的值。

  (2):_然后,调用rand(),它会根据提供给srand()的值返回一个随机数(范围在_0~32767之间)

  (3):根据需要多次调用rand(),不断得到新的随机数。

  (4):无论什么时候可以给srand()提供一个新的“种子”,从而进一步“随机化”rand()的

  输出结果。

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template