我正在Lua中编写一个马尔可夫链的程序,其中一个要素是需要我均匀生成随机数。下面是一个简化的例子,用来说明我的问题:
我的问题是,当我多次重新运行这个程序时,会生成完全相同的随机数,导致示例函数选择相同的数组元素。然而,如果我在单个程序中多次重复打印行,包含多次对示例函数的调用,我会得到合适的随机结果。
这并不是我的意图,因为一个合适的马尔可夫伪随机文本生成器应该能够多次运行相同的程序,并每次输出不同的伪随机文本。我尝试使用
example = function(x)
local r = math.random(1,10)
print(r)
return x[r]
end
exampleArray = {"a","b","c","d","e","f","g","h","i","j"}
print(example(exampleArray))
我的问题是,当我多次重新运行这个程序时,会生成完全相同的随机数,导致示例函数选择相同的数组元素。然而,如果我在单个程序中多次重复打印行,包含多次对示例函数的调用,我会得到合适的随机结果。
这并不是我的意图,因为一个合适的马尔可夫伪随机文本生成器应该能够多次运行相同的程序,并每次输出不同的伪随机文本。我尝试使用
math.randomseed(os.time())
来重置种子,这样随机数分布就不再均匀。我的目标是能够重新运行上述程序,并每次接收到一个随机选择的数字。