math.random () возвращает только 1? - PullRequest
0 голосов
/ 14 апреля 2020

Я пытался сгенерировать случайное число между 1100, но когда я печатаю число, оно всегда возвращает 1

, это мой текущий код:

local num = 100
local randomNum = math.random(1,num)
print(randomNum) --> 1

1 Ответ

2 голосов
/ 14 апреля 2020

Lua 's math.random() "- это интерфейс к базовой функции псевдослучайного генератора, предоставляемой C". Вам нужно заполнить генератор случайных чисел, используя math.randomseed(), если вы хотите получить другие результаты при последовательных запусках вашей программы. Один из распространенных подходов - заполнить генератор псевдослучайных чисел текущим временем.

Если вы измените свою программу на вывод 10 результатов с math.random(), вы получите последовательность из 10 случайных чисел - - и эта последовательность будет одинаковой при каждом запуске вашей программы.

См. функции rand() и srand() в C.

Обратите внимание, что C 's rand() обычно не производит высококачественные псевдослучайные числа. Скорее всего, они достаточно хороши для игры, но недостаточно хороши для криптографии.

(В моей системе я получаю 85 каждый раз, когда запускаю вашу программу. Она будет варьироваться в зависимости от характеристики библиотеки времени выполнения C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...