好吧,一定有人知道比我更容易做到这一点的方法。我正在尝试使用一个相当常见的公式编写一个随机数生成器。
--Random Number Generator
local X0=os.time()
local A1=710425941047
local B1=813633012810
local M1=711719770602
local X1=(((A1*X0)+B1)%M1)
local X2=(((A1*X1)+B1)%M1) --then I basically take the vaiable X1 and feed
--it back into itself.
print(X2)
local X3=(((A1*X2)+B1)%M1)
print(X3)
local X4=(((A1*X3)+B1)%M1)
print(X4)
local X5=(((A1*X4)+B1)%M1)
print(X5)
local X6=(((A1*X5)+B1)%M1)
print(X6)
local X7=(((A1*X6)+B1)%M1)
print(X7)
等等等等。有人知道更快的方法吗?我希望能够将它融入以下内容:
for i=1,Number do
local X[loop count]=(((A1*X[Loop count-1])+B1)%M1)
math.randomseed(X[loop count])
local roll=math.random(1,20)
print("You rolled a "..roll)
end
io.read()
字符串类型。我正在使用它为我在桌面游戏中制作的曲目生成随机数。示例代码:
if trackclass == "S" then
for i=1,S do --Stated earlier that S=25
local roll=math.random(1,5)
local SP=math.random(1,3)
local Count= roll
if Count == 1 then
local Track = "Straightaway"
p(Track.." Of SP "..SP)
else
end
if Count == 2 then
local Track = "Curve"
p(Track.." of SP "..SP)
else
end
if Count == 3 then
local Track = "Hill"
p(Track.." of SP "..SP)
else
end
if Count == 4 then
local Track = "Water"
p(Track.." of SP "..SP)
else
end
if Count == 5 then
local Track = "Jump"
p(Track.." of SP "..SP)
else
end
end
结尾
不幸的是,当我使用它时,这似乎生成了一组非常糟糕的随机数分布,我真的希望它能够更好地工作。在充实可变循环周期方面的任何可能帮助将不胜感激。甚至像调用这样的东西,每次调用 math.random() 时,它都会在 X[loop count]] 上加一,这样每个生成的数字实际上都是一个更好的伪随机数分布。
请原谅我的半散漫。我的头脑现在不一定有条不紊地思考。