Я работаю над программированием цепи Маркова в 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))
Моя проблема в том, что, когда я повторно запускаю эту программу несколько раз (mash F5), создается то же самое случайное число, в результате чего функция выбора выбирает тот же самый элемент массива. Тем не менее, если я включаю много вызовов в примерную функцию внутри одной программы, повторяя линию печати в конце много раз, я получаю подходящие случайные результаты.
Это не мое намерение, поскольку надлежащий марковский псевдослучайный текстовый генератор должен иметь возможность запускать одну и ту же программу с одними и теми же входами несколько раз и каждый раз выводить различный псевдослучайный текст. Я попытался сбросить семя с помощью math.randomseed(os.time())
, и это делает так, что распределение случайных чисел больше не равномерное. Моя цель состоит в том, чтобы иметь возможность повторно запускать указанную выше программу и получать случайно выбранный номер каждый раз.