php獲取任意隨機(jī)數(shù)
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
提起獲取隨機(jī)數(shù),大家可能會(huì)想到, 使用rand()和mt_rand().這兩個(gè)方法區(qū)別。
mt_rand() 比rand() 快四倍 很多老的 libc 的隨機(jī)數(shù)發(fā)生器具有一些不確定和未知的特性而且很慢。PHP 的 rand() 函數(shù)默認(rèn)使用 libc 隨機(jī)數(shù)發(fā)生器。mt_rand() 函數(shù)是非正式用來(lái)替換它的。該函數(shù)用了 Mersenne Twister 中已知的特性作為隨機(jī)數(shù)發(fā)生器,mt_rand() 可以產(chǎn)生隨機(jī)數(shù)值的平均速度比 libc 提供的 rand() 快四倍。 mt_rand() 比rand() 快四倍 mt_rand — 生成更好的隨機(jī)數(shù) (PHP 3 >= 3.0.6, PHP 4, PHP 5) int mt_rand ( [int min, int max] ) 很多老的 libc 的隨機(jī)數(shù)發(fā)生器具有一些不確定和未知的特性而且很慢。PHP 的 rand() 函數(shù)默認(rèn)使用 libc 隨機(jī)數(shù)發(fā)生器。mt_rand() 函數(shù)是非正式用來(lái)替換它的。該函數(shù)用了 Mersenne Twister(馬其塞旋轉(zhuǎn)) 中已知的特性作為隨機(jī)數(shù)發(fā)生器,它可以產(chǎn)生隨機(jī)數(shù)值的平均速度比 libc 提供的 rand() 快四倍。 如果沒(méi)有提供可選參數(shù) min 和 max,mt_rand() 返回 0 到 RAND_MAX 之間的偽隨機(jī)數(shù)。 例如想要 5 到 15(包括 5 和 15)之間的隨機(jī)數(shù),用 mt_rand(5, 15)。 注: 自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函數(shù)給隨機(jī)數(shù)生成器播種,現(xiàn)已自動(dòng)完成。 rand — 產(chǎn)生一個(gè)隨機(jī)整數(shù) (PHP 3, PHP 4, PHP 5) int rand ( [int min, int max] ) 如果沒(méi)有提供可選參數(shù) min 和 max,rand() 返回 0 到 RAND_MAX 之間的偽隨機(jī)整數(shù)。例如想要 5 到 15(包括 5 和 15)之間的隨機(jī)數(shù),用 rand(5, 15)。 注: 在某些平臺(tái)下(例如 Windows)RAND_MAX 只有 32768。如果需要的范圍大于 32768,那么指定 min 和 max 參數(shù)就可以生成大于 RAND_MAX的數(shù)了,或者考慮用 mt_rand() 來(lái)替代之。 注: 自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函數(shù)給隨機(jī)數(shù)生成器播種,現(xiàn)已自動(dòng)完成。 下附上公司獲取訂單中間隨機(jī)數(shù)方法。有時(shí)候大家會(huì)說(shuō)獲取不同的隨機(jī)數(shù)。可能會(huì)用for來(lái)判斷是否已存在,下面方法可以最大限度的減少相同的數(shù)字: function get_rand($len) { $chars = '0123456789'; $string = ''; for(; $len >= 1; $len --) { $position = rand () % strlen ( $chars ); $string .= substr ( $chars, $position, 1 ); } return $string; } 該文章在 2012/6/7 9:28:24 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |