我的“randomString”函数一直返回相同的结果。

这是我最初使用PAWN编程语言编写的“ randomString”函数的Lua实现,我想实现它以生成一些密码盐。但是,每当我调用我的移植函数时,无论何时第一次运行程序,它总是返回相同的输出。

以这段代码为例。

for i = 0,100 do print(randomString.generate(16)) 终止 它总是生成相同的随机字符串列表。有人能解释为什么吗?谢谢您的帮助!

点赞
用户2633423
用户2633423

math.random生成一系列伪随机数,即一种类似于实际随机序列的确定性序列。由math.random生成的序列将始终相同,除非您使用math.randomseed

对于您调用math.randomseed的每个可能值,math.random将生成一个不同的伪随机序列。

例如,尝试使用以下代码,您将看到一个不同的序列:

math.randomseed( 7654321 )
for i = 0, 100 do
    print(randomString.generate(16))
end

如果您想要真正随机的序列,在开始生成之前,应使用真正的随机数向randomseed提供输入。

2013-09-21 21:41:45