小编Sta*_*ime的帖子

在Lua中生成统一的随机数

我正在编写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))
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我多次重新运行该程序(mash F5)时,会生成完全相同的随机数,从而导致示例函数选择完全相同的数组元素.但是,如果我通过在末尾多次重复打印行多次调用单个程序中的示例函数,我会得到合适的随机结果.

这不是我的意图,因为正确的Markov伪随机文本生成器应该能够多次运行具有相同输入的相同程序,并且每次都输出不同的伪随机文本.我已经尝试使用重置种子math.randomseed(os.time()),这使得随机数分布不再均匀.我的目标是能够重新运行上述程序并每次接收随机选择的号码.

random lua random-seed

14
推荐指数
3
解决办法
4万
查看次数

标签 统计

lua ×1

random ×1

random-seed ×1