私は Lua でマルコフ連鎖のプログラミングに取り組んでおり、その 1 つの要素として乱数を一様に生成する必要があります。私の質問を説明するための簡単な例を次に示します。
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))
私の問題は、このプログラムを複数回再実行すると ( mash F5)、まったく同じ乱数が生成され、サンプル関数がまったく同じ配列要素を選択することになります。ただし、最後の印刷行を何度も繰り返すことによって、単一のプログラム内にサンプル関数への多くの呼び出しを含めると、適切なランダムな結果が得られます。
これは私の意図ではありません。適切なマルコフ疑似乱数テキスト ジェネレーターは、同じ入力で同じプログラムを複数回実行し、毎回異なる疑似乱数テキストを出力できるはずだからです。を使用してシードをリセットしようとしましたmath.randomseed(os.time())
が、これにより、乱数分布が均一ではなくなります。私の目標は、上記のプログラムを再実行し、毎回ランダムに選択された番号を受け取ることができるようにすることです.