math.random()只返回1?

math.random()只返回1?,math,lua,Math,Lua,我试图在1100之间生成一个随机数,但当我打印这个数字时,它总是返回1 这是我当前的代码: local num = 100 local randomNum = math.random(1,num) print(randomNum) --> 1 Lua的math.random()“是C提供的底层伪随机生成器函数的接口”。如果希望在程序的连续运行中获得不同的结果,则需要使用math.randomseed()为随机数生成器设定种子。一种常见的方法是使用当前时间为伪随机数生成器种子 如果您将程序

我试图在1100之间生成一个随机数,但当我打印这个数字时,它总是返回1

这是我当前的代码:

local num = 100
local randomNum = math.random(1,num)
print(randomNum) --> 1
Lua的
math.random()
“是C提供的底层伪随机生成器函数的接口”。如果希望在程序的连续运行中获得不同的结果,则需要使用
math.randomseed()
为随机数生成器设定种子。一种常见的方法是使用当前时间为伪随机数生成器种子

如果您将程序更改为打印10个
math.random()
的结果,您将得到一个由10个看起来随机的数字组成的序列,并且该序列在每次运行程序时都是相同的

请参阅C中的
rand()
srand()
函数

请注意,C的
rand()
通常不会生成高质量的伪随机数。对于游戏来说,它们可能已经足够好了,但对于加密技术来说还远远不够好

(在我的系统上,每次运行您的程序时,我都会得到
85
。它会根据C运行时库的特征而变化。)

Lua的
math.random()
“是C提供的底层伪随机生成器函数的接口”。如果希望在程序的连续运行中获得不同的结果,则需要使用
math.randomseed()
为随机数生成器设定种子。一种常见的方法是使用当前时间为伪随机数生成器种子

如果您将程序更改为打印10个
math.random()
的结果,您将得到一个由10个看起来随机的数字组成的序列,并且该序列在每次运行程序时都是相同的

请参阅C中的
rand()
srand()
函数

请注意,C的
rand()
通常不会生成高质量的伪随机数。对于游戏来说,它们可能已经足够好了,但对于加密技术来说还远远不够好

(在我的系统中,每次运行你的程序时,我都会得到
85
。它会根据C运行时库的特性而变化。)