为什么数学库在 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

...比种子变化得足够快。