为什么数学库在 Lua 中给我错误的值?
Why does math library giving me wrong value in Lua?
这是我写的烂代码。我的问题在这一行Number[math.random(#Number)] + (math.random(4) - 1) * 7
。从数学上讲,我得到的最大值是 26,但不是 26,而是给我 28,不超过 26。这是为什么?
r = 0
Number = {
1, 2, 5, 6, 7
}
while r < 28 do
math.randomseed(os.time())
r = Number[math.random(#Number)] + (math.random(4) - 1) * 7
print(r)
end
我试图简化下面的代码现在,这里给出了准确的 26
k = {1,2,3,4,5}
r = k[#k] + (3) * 7
print(r)
不应在快速 Lua 循环中调用 math.randomseed(os.time())
。
因为 os.time()
太慢了(每秒变化一次)。
为了更好的随机性检查(摇动)这个...
for i = 1, 6 do -- Six Dices
for i = 1, math.random(10,15) do -- Shake it
math.randomseed(math.random(os.time()))
end
print(math.random(1, 6)) -- Dice fall
end
...比种子变化得足够快。
这是我写的烂代码。我的问题在这一行Number[math.random(#Number)] + (math.random(4) - 1) * 7
。从数学上讲,我得到的最大值是 26,但不是 26,而是给我 28,不超过 26。这是为什么?
r = 0
Number = {
1, 2, 5, 6, 7
}
while r < 28 do
math.randomseed(os.time())
r = Number[math.random(#Number)] + (math.random(4) - 1) * 7
print(r)
end
我试图简化下面的代码现在,这里给出了准确的 26
k = {1,2,3,4,5}
r = k[#k] + (3) * 7
print(r)
不应在快速 Lua 循环中调用 math.randomseed(os.time())
。
因为 os.time()
太慢了(每秒变化一次)。
为了更好的随机性检查(摇动)这个...
for i = 1, 6 do -- Six Dices
for i = 1, math.random(10,15) do -- Shake it
math.randomseed(math.random(os.time()))
end
print(math.random(1, 6)) -- Dice fall
end
...比种子变化得足够快。