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