math.random()只返回1?
我试图在1100之间生成一个随机数,但当我打印这个数字时,它总是返回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()为随机数生成器设定种子。一种常见的方法是使用当前时间为伪随机数生成器种子 如果您将程序
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运行时库的特性而变化。)