php獲取任意隨機數(shù)
當前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
提起獲取隨機數(shù),大家可能會想到, 使用rand()和mt_rand().這兩個方法區(qū)別。
mt_rand() 比rand() 快四倍 很多老的 libc 的隨機數(shù)發(fā)生器具有一些不確定和未知的特性而且很慢。PHP 的 rand() 函數(shù)默認使用 libc 隨機數(shù)發(fā)生器。mt_rand() 函數(shù)是非正式用來替換它的。該函數(shù)用了 Mersenne Twister 中已知的特性作為隨機數(shù)發(fā)生器,mt_rand() 可以產(chǎn)生隨機數(shù)值的平均速度比 libc 提供的 rand() 快四倍。 mt_rand() 比rand() 快四倍 mt_rand — 生成更好的隨機數(shù) (PHP 3 >= 3.0.6, PHP 4, PHP 5) int mt_rand ( [int min, int max] ) 很多老的 libc 的隨機數(shù)發(fā)生器具有一些不確定和未知的特性而且很慢。PHP 的 rand() 函數(shù)默認使用 libc 隨機數(shù)發(fā)生器。mt_rand() 函數(shù)是非正式用來替換它的。該函數(shù)用了 Mersenne Twister(馬其塞旋轉(zhuǎn)) 中已知的特性作為隨機數(shù)發(fā)生器,它可以產(chǎn)生隨機數(shù)值的平均速度比 libc 提供的 rand() 快四倍。 如果沒有提供可選參數(shù) min 和 max,mt_rand() 返回 0 到 RAND_MAX 之間的偽隨機數(shù)。 例如想要 5 到 15(包括 5 和 15)之間的隨機數(shù),用 mt_rand(5, 15)。 注: 自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函數(shù)給隨機數(shù)生成器播種,現(xiàn)已自動完成。 rand — 產(chǎn)生一個隨機整數(shù) (PHP 3, PHP 4, PHP 5) int rand ( [int min, int max] ) 如果沒有提供可選參數(shù) min 和 max,rand() 返回 0 到 RAND_MAX 之間的偽隨機整數(shù)。例如想要 5 到 15(包括 5 和 15)之間的隨機數(shù),用 rand(5, 15)。 注: 在某些平臺下(例如 Windows)RAND_MAX 只有 32768。如果需要的范圍大于 32768,那么指定 min 和 max 參數(shù)就可以生成大于 RAND_MAX的數(shù)了,或者考慮用 mt_rand() 來替代之。 注: 自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函數(shù)給隨機數(shù)生成器播種,現(xiàn)已自動完成。 下附上公司獲取訂單中間隨機數(shù)方法。有時候大家會說獲取不同的隨機數(shù)??赡軙胒or來判斷是否已存在,下面方法可以最大限度的減少相同的數(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ān)鍵字查詢
相關(guān)文章
正在查詢... |