PHP獲取隨機數

2022-06-11 16:00:13 字數 1403 閱讀 2463

<?php

$fileid=date("ymd-his") . '-' . rand(100,999);

//$fileid為   20100903-132121-908   這樣的的隨機數

?>

<?php

function randomkeys($length)

;    //生成php隨機數

}return $key;

}echo randomkeys(4);

?>

<?php

//seed使用者自定義函式以微秒作為種子

function seed()

//播下隨機數發生器種子,用srand函式呼叫seed函式的返回結果

srand(seed());

//輸出產生的隨機數,隨機數的範圍為10-100

echo rand(10,100);

?>

上面這個和下面這個不是沒什麼不同嗎?都是隨機輸出10-100之間的數,新人學習,可能問的太簡單了呵呵

<?php

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()的

輸出結果。

php 獲取隨機數

獲得最小和最大值之間隨機數,位數不足補零 function getrandnumber fmin fmax fileid date ymd his rand 100,999 fileid為 20100903 132121 908 這樣的的隨機數 function randomkeys length ...

PHP獲取隨機數

fileid date ymd his rand 100,999 fileid為 20100903 132121 908 這樣的的隨機數 function randomkeys length 生成php隨機數 return key echo randomkeys 4 seed使用者自定義函式以微秒作...

PHP獲取隨機數

fileid date ymd his rand 100,999 fileid為 20100903 132121 908 這樣的的隨機數 function randomkeys length 生成php隨機數 return key echo randomkeys 4 seed使用者自定義函式以微秒作...