php產生隨機數問題

2021-08-27 09:59:41 字數 437 閱讀 1903

php產生隨機數的函式是mt_rand(p1,p2);

如果沒有設定種子點,實際上產生的是乙個偽隨機數序列。也就是說,在一次生成過程中,雖然能夠產生乙個隨機數的序列,但是在多次生成中,這個序列是一模一樣的

所以任何語言只要牽扯到隨機隨機數問題必須設定種子點,這種種子可以確保隨機數列的隨機性,一般以時間為種子

php中設定隨機數發生種子的是mt_srand($seed);

首先需要乙個種子生成器:

mt_srand((double)microtime()*1000000);

其中microtime()返回了兩個值:當前微秒數和當前unix時間戳,(double)microtime()就是獲取當前微秒數,

然後再產生隨機數

mt_rand(0,100);

在0-100之間產生隨機數包括0和100

PHP產生隨機數

php生成隨機字串包括大小寫字母 php生成隨機字串包括大小寫字母,這裡介紹兩種方法 第一種 利用字串函式操作?blog functioncreaterandomstr length str str shuffle str returnsubstr str,0,length echocreatera...

PHP產生隨機數

php生成隨機字串包括大小寫字母 php生成隨機字串包括大小寫字母,這裡介紹兩種方法 第一種 利用字串函式操作 blog functioncreaterandomstr length str str shuffle str returnsubstr str,0,length echocreatera...

Random產生隨機數問題

昨天在開發時發現這個問題,在同乙個for迴圈內,通過random多次產生隨機數得到的隨機數竟是一樣的!以前還真沒發現這個問題。以下是簡化的 如果將random定義在for迴圈外面則不會有問題 猜測random與時間有關且存在固定的演算法獲取隨機數 但實際開發中一般會把產生隨機數封裝為乙個方法,呼叫的...