随机数与随机种子的关系

247 阅读1分钟

转自:blog.csdn.net/xu505928168…

计算机是怎么产生随机数的?

当然是通过算法,这个算法是有映射关系的,如我放进1,他会出来一个特定的数

RAND_SEED=(RAND_SEED*123+59)%65536; 这是某个系统的随机数算法。

我们可以把这个算法看成是一个黑盒子,你放进一个数,就会出来一个特定的数,并把这个数当做下一次的种子在放进去。

系统实现随机数是把当前的系统时间放进去,每次都不一样,所以可以实现。

但如果你每次都放进一样的种子,生成的随机数列就是一样的了。

比如:

for i = 0, 4 do
    math.random(100)
    local n = math.random(10)
    print(n)
end

这样得到的值永远都是一样的。

math.random(100)
for i = 0, 4 do
    local n = math.random(10)
    print(n)
end

这样每次得到的值都是随机的。