Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
lua math.random first随机化数字不';重滚_Random_Lua_Random Seed - Fatal编程技术网

lua math.random first随机化数字不';重滚

lua math.random first随机化数字不';重滚,random,lua,random-seed,Random,Lua,Random Seed,所以我是LUA的新手,正在编写一个简单的猜测数字脚本,但是我发现了一个奇怪的怪癖,它发生在math.random上,我想了解这里发生了什么 所以我用math.randomseed(os.time())创建了一个随机种子,但是当我去获取一个随机数时,就像这样: correctNum=math.random(10) 打印(correctNum), 每次我运行它时,它总是得到相同的随机数,除非我运行两次(不管给定的参数是什么): random1=math.random(10) 打印(随机1) 随机数2

所以我是LUA的新手,正在编写一个简单的猜测数字脚本,但是我发现了一个奇怪的怪癖,它发生在
math.random
上,我想了解这里发生了什么

所以我用
math.randomseed(os.time())
创建了一个随机种子,但是当我去获取一个随机数时,就像这样:
correctNum=math.random(10)
打印(correctNum)

每次我运行它时,它总是得到相同的随机数,除非我运行两次(不管给定的参数是什么):
random1=math.random(10)
打印(随机1)
随机数2=数学随机数(10) 打印(随机2)

在这种情况下,第一个随机数永远不会在每次执行时重新滚动,但第二个随机数会

我只是对LUA中的随机化工作感到困惑,希望能得到一些帮助

谢谢,
-电击师


以下是完整的工作代码:

math.randomseed(os.time())
random1 = math.random(10)
print(random1)

random2 = math.random(10)
print(random2)

repeat
  io.write "\nEnter your guess between 1 and 10: "
  guess = io.read()
  if tonumber(guess) ~= random2 then
    print("Try again!")
  end
  print()
until tonumber(guess) == random2
print("Correct!")

我猜你在同一秒内调用了两次脚本。
os.time()
的分辨率为1秒,即如果在同一秒内调用脚本两次,则从同一种子开始

os.time([表]) 返回调用时不带参数的当前时间,或表示给定表指定的日期和时间的时间。此表必须包含字段
,并且可能包含字段
小时
分钟
isdst
(有关这些字段的说明,请参阅
操作系统日期
功能)

返回的值是一个数字,其含义取决于您的系统。在POSIX、Windows和其他一些系统中,这个数字统计自某个给定的开始时间(“历元”)起的秒数。在其他系统中,未指定含义,
time
返回的数字只能用作
date
difftime
的参数

此外,您正在滚动一个介于1和10之间的数字,因此您有0.1的机会命中4(这不是那么小)

要获得更好的随机数种子方法,请查看以下内容: