萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> php rand() 隨機數生成的方法介紹

php rand() 隨機數生成的方法介紹

在php生成隨機數有很多種方法rand()只是其實一種還有mt_rand()這個函數也可以生成,區別我就不說了下面來看看。

rand() 函數返回隨機整數。

語法
rand(min,max)參數 描述
min,max 可選。規定隨機數產生的范圍。

如果沒有提供可選參數 minmax,rand() 返回 0 到 RAND_MAX 之間的偽隨機整數。例如,想要 5 到 15(包括 5 和 15)之間的隨機數,用 rand(5, 15)。

在PHP中,要生成一個隨機數,可以經過如下三個步驟:

 代碼如下 復制代碼 //第一步:初始化種子
$seedarray =microtime();
$seedstr =split(" ",$seedarray,5);
$seed =$seedstr[0]*1000000;

 
//第二步:使用種子初始化隨機數發生器

 代碼如下 復制代碼 srand($seed);

 
//第三步:生成指定范圍內的隨機數

 代碼如下 復制代碼 $random =rand(0,1000);

其中,前面兩步都不需要進行修改,就是最後一步,(0,1000)表示在0到1000中產生一個隨機數(包括0在內),這個范圍可以修改成你自己需要的范圍。

還有一種生成隨機數的更加簡化的代碼:

 代碼如下 復制代碼

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

其中,microtime()返回了兩個值:當前毫秒數和時間戳。由於我們只是要提取隨機數,因而利用毫秒數即可。(double)microtime()的意思就是只返回當前的毫秒值。microtime()是以秒為單位的毫秒數,因而值都是小數,乘以1000000將其換算為整數。第二句代碼表示在0到1000中生成一個隨機數。

提示和注釋
注釋:在某些平台下(例如 Windows)RAND_MAX 只有 32768。如果需要的范圍大於 32768,那麼指定 min 和 max 參數就可以生成大於 RAND_MAX 的數了,或者考慮用 mt_rand() 來替代它。

注釋:自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函數給隨機數發生器播種,現在已自動完成。

注釋:在 3.0.7 之前的版本中,max 的含義是 range 。要在這些版本中得到和上例相同 5 到 15 的隨機數,簡短的例子是 rand (5, 11)。

copyright © 萬盛學電腦網 all rights reserved