Rnd 函数

返回随机数。

语法

Rnd[(number)]

注释

number 参数可以是任何有效数字表达式。

Rnd 函数返回一个小于 1 但大于或等于 0 的值。number 的值确定 Rnd 如何生成随机数:

表 11-13 Rnd 函数返回值

如果 number Rnd 生成
小于零 每次生成相同数值,使用 number 作为种子。
大于零 序列中的下一个随机数。
等于零 最近生成的数值。
未提供 序列中的下一个随机数。

对于任何给定的初始种子,都会生成相同的数值序列,因为对 Rnd 函数的每次连续调用都使用上一个数值作为序列中下一个数值的种子。

调用 Rnd 之前,使用不带参数的 Randomize 语句来根据系统计时器用种子初始化随机数生成器。

要生成给定范围内的随机整数,请使用此公式:

Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

此处,upperbound 是范围中的最大数值,而 lowerbound 是范围中的最小数值。

注:

要重复随机数序列,请在使用带数字参数的 Randomize 之前,立即使用负参数调用 Rnd。使用具有相同 number 值的 Randomize 不会重复之前的序列。

以下示例说明了 Rnd 函数如何返回随机数:

示例 1

Dim randomNumber
Randomize  ' Initialize random-number generator
randomNumber = Rnd
'Output: random number between 0 and 1

示例 2

Dim randomNumber
Randomize  ' Initialize random-number generator
randomNumber = Rnd(-1)  ' Use -1 as the seed
'Output: the same random number each time

示例 3

Dim randomNumber
Randomize  ' Initialize random-number generator
randomNumber = Rnd  ' Generate the first random number
'Output: the first random number
randomNumber = Rnd  ' Generate the next random number
'Output: the next random number

示例 4

Dim randomNumber
Randomize ' Initialize random-number generator
randomNumber = Rnd(0)  ' Generate a random number and store it
'Output: the most recently generated random number

示例 5

Dim lowerbound, upperbound, randomNumber
lowerbound = 1
upperbound = 10
Randomize  ' Initialize random-number generator
randomNumber = Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
'Output: a random integer between 1 and 10