Note To repeat sequences of random numbers, call Rnd with a negative argument immediately before using Randomize with a numeric argument. Using Randomize with the same value for number does not repeat the previous sequence.
即:
注意 :要重复随机数的序列,请在使用数值参数调用 Randomize 之前,立即用负值参数调用 Rnd。使用相同的 number 值的 Randomize 不能重复先前的随机数序列。
thanks作者: Horus_Ra 时间: 2006-4-4 13:07
公式是:Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
upperbound是最大数,lowerbound是最小数作者: steven.chen 时间: 2006-4-4 13:43
对不起,我不是问的产生随机数的公式,这个公式我知道,我是想问一下VBScript的语言参考手册中的note的一个问题,any way,thank you all the same。作者: steven.chen 时间: 2006-4-4 14:54
如果换成是循环来看:
x = 0
While x<10
Randomize (10)
msgbox rnd(10)
x = x+1
Wend
这样他就是产生了不同的十个随机数,这样好像就证明了:使用相同的 number 值的 Randomize 不能重复先前的随机数序列。
但是新的问题是:当我在这次循环完成后,重新调用这个函数,结果得到的十个随机数又是和上一次产生的10个随机数是同样的,为什么会是这样的结果?why?作者: steven.chen 时间: 2006-4-4 15:03
Randomize uses number to initialize the Rnd function's random-number generator, giving it a new seed value.
是不是系统在第一次运行时产生了一个被用来计算随机数的种子,而在之后的运算中没有产生新的种子,所以之后的随机数都一样(这样的情况和没有产生新种子的情况是一样的),那使用相同的 number 值的 Randomize在每次不同的运行时会产生不同的随机数呢?作者: steven.chen 时间: 2006-4-4 15:11
While x<10
rnd(-1)
Randomize (10)
msgbox rnd(10)
x = x+1
Wend