所以我有这个函数,它生成一个随机的数字字符串,长度为 8 个字符。如果每页调用一次,它就会工作,即如果我刷新它将显示一个新数字。
但我想在一个循环中生成其中的许多,并返回相同的数字。我该如何解决这个问题?
Function generateCode()
pChar = "0123456789"
pCount = Len(pChar)
Dim psw
psw = ""
Randomize
For i = 1 To 8 ' password length
psw = psw & Mid( pChar, 1 + Int(Rnd * pCount), 1 )
Next
generateCode= psw
End Function
现在我认为 Randomize 可能基于当前时间,所以我取出 Randomize 行并在调用 generateCode() 的循环之前调用 Randomize 我 - 仍然没有工作!
最佳答案
Randomize
不带任何参数使用系统时间为伪随机数生成器播种。如果您非常快地多次调用它,系统时间将不会改变,因此您将每次使用相同的种子重新初始化 PRNG,给出相同的随机数。
您应该只在您的页面上调用 Randomize 一次,而不是多次。
关于random - VBScript 在循环时生成相同的随机数 - 如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5286337/