【发布时间】:2022-01-26 13:56:36
【问题描述】:
我在玩 lua 解释器并制作了这个小程序,它生成两个数字并比较它们。程序运行直到数字匹配。第一个数字是使用 math.random() 随机生成的,设置为 1 和 100000。生成的要比较的第二个值介于 1 和 100 之间。它还跟踪程序循环的次数。该程序按预期运行,但是当我运行它时发生了一些奇怪的事情。
出现的值总是 1、31、62 或 92。我已经多次运行该程序,但它不断生成这些数字。我对如何生成随机数有一些了解,但这似乎很奇怪。我将代码粘贴在下面。如果有人可以解释这里发生了什么,我将不胜感激。谢谢!
counter=0;
a=0;
b=1;
while(a~=b)do
a=math.random(1,1000000);
b=math.random(1,100);
counter=counter+1;
if(a==b)then
print(a..", "..b..", and it took "..counter.." times")
end
end
【问题讨论】:
-
这是什么版本的 Lua?最新版本会自动为 RNG 播种,因此不会发生这种情况。
-
它说 lua 5.1 我可以发誓我直接从 lua.org 得到这个。谷歌表示最新版本是 5.4。谢谢你让我知道。有没有什么地方我可以去阅读更多关于导致这种情况的原因的信息?
-
在online demo 中运行它。我每次都得到不同的数字。
-
在 Lua 5.1 上你应该用
math.randomseed(os.time())开始你的程序
标签: random lua numbers generate