我使用以下代码生成随机数:
$random = mt_rand(1000000000,10000000000);
它在localhost上完美运行,但在服务器上输出完全相同的数字。我有什么办法可以防止重复的结果吗? 其实我试着用
mt_srand();
但我不知道如何使用它。
答案 0 :(得分:0)
“随机”数字不是真正随机的,它们是伪随机的。寻找一条指令,使用变化的值“播种”生成器,就像基于时间的东西一样,每次都得到不同的值。
文档说:“许多旧libcs的随机数生成器具有可疑或未知的特性且速度很慢.mt_rand()函数是旧rand()的替代品。它使用已知的随机数生成器使用»Mersenne Twister的特征,其产生的随机数比平均libc rand()提供的速度快四倍。“
阅读manual on mt_srand并选择一个从调用到调用的种子(如秒或毫秒或刻度或其他)。
答案 1 :(得分:0)
如果您使用PHP> = 7,则可以使用random_int()生成随机整数,这也接受与mt_rand相同的参数。
如果你想使用mt_srand,你可以用Unix时间戳(以毫秒为单位)播种它,然后运行你的mt_rand()函数。例如。
{{1}}