我如何快速生成独一无二的随机数?

我有一个需要在快速连续调用三次的函数,每一次它都需要生成一个介于1和6之间的假随机整数。但是我无法从该函数中获得足够的熵。

我已经尝试使用math.randomseed()用以下所有选项进行播种,但从来没有足够的变化来影响结果。

os.time()
tonumber(tostring(os.time()):reverse():sub(1,6))
socket.gettime() * 1000

我也尝试过这个片段,但每次我的应用运行时,它都会按相同的顺序生成相同的数字模式。每次我的应用程序运行时,我需要不同(大概)的数字。

有什么建议吗?

点赞
用户148569
用户148569

Bah, I needed another zero when multiplying socket.gettime(). Multiplied by 10000 there is sufficient distance between the numbers to give me a good enough seed.

哎呀,我在对 socket.gettime() 进行乘法时需要再加一位零。将它乘以 10000 就足够使这些数字之间有足够的距离,能够提供足够好的种子。

2014-02-23 22:33:01