2014-07-25 25 views
-2

根據官方文件,mt_rand()應該比rand()快4倍。從PHP 5.4開始,rand()和mt_rand()之間的區別是什麼?

但是當我讀到this article哪個聲稱兩者之間沒有明顯區別時,我tried this on Google App Engine(這是PHP 5.4)。結果幾乎相同。

那麼,PHP 5.4和之後的rand()和mt_rand()之間有什麼區別?我如何確定使用哪一個?

+0

有人說,'mt_rand()'是有點快。你必須閱讀兩個函數來進行比較。 –

+2

30秒。谷歌找到:http://tjl.co/blog/code/followup-php-rand-vs-mt_rand/和http://en.code-bude.net/2013/01/06/php-rand-vs- mt_rand-what-is-more-accurate-what-is-faster /和http://www.tuxradar.com/practicalphp/4/6/2 –

回答

0

隨着mt_rand()你可以生成隨機數就像在php中的rand()函數。 mt_rand()會多快一點在我看來..

只是這裏有一個讀..快http://en.code-bude.net/2013/01/06/php-rand-vs-mt_rand-what-is-more-accurate-what-is-faster/

+0

這不是頁面所說的。它在Windows上說'rand()'對於大多數需要更真實的隨機性的任何東西都是不可用的,它會產生線性依賴的數字,所以對於你想要使用'mt_rand()'的所有東西。 –

1

四倍眨眼仍然是一個眨眼。特別考慮到它是一種解釋型語言的內置功能,性能不應該是它最顯着的特徵。

根據the documentation

默認情況下,PHP使用libc的隨機數生成器,用rand()函數。 mt_rand()函數是對此的替代替代。 它使用已知特徵的隨機數生成器使用Mersenne Twister,這將產生比平均libc rand()提供的速度快4倍的隨機數。

相關問題