2017-06-15 31 views
0

我使用下面的代码来生成随机数:随机函数输出相同的数字。

$random = mt_rand(1000000000,10000000000); 

它完全在本地主机上,但是在服务器上它输出完全一样的号码。有什么我可以做的,以防止重复的结果? 其实我试图用

mt_srand(); 

,但我不知道如何使用它。

+2

如有疑问,如何使用它。 [RTFM](http://php.net/manual/en/function.mt-srand.php) – RiggsFolly

回答

0

如果你在PHP> = 7则可以使用random_int()来生成一个随机整数这也接受相同的参数mt_rand。

如果你想使用mt_srand,那么你可以在毫秒Unix时间戳种子,然后运行mt_rand()函数。例如。

mt_srand(microtome()); 
$rand = mt_rand(1, 100000); 
0

“随机”的数字是不是真的随机的,他们是伪随机的。寻找一条指令,用一个变化的值“发芽”发电机,如基于时间的,以便每次获得不同的值。

该文档说:“许多旧版libcs​​的随机数生成器具有可疑或未知特性,并且速度较慢.mt_rand()函数是旧版rand()的直接替代品,它使用随机数生成器使用»Mersenne Twister,这将产生比平均libc rand()提供的速度快4倍的随机数。“

阅读manual on mt_srand并选择一个种子(如秒或毫秒或蜱或其他),这将改变从调用到调用。