Rnd 函式

傳回亂數。

語法

Rnd[(number)]

備註

數字引數可以是任何有效的數值表示式。

Rnd 函式會傳回小於 1 但大於或等於 0 的值。number 的值會決定 Rnd 如何產生亂數:

表格 11-13 Rnd 函式傳回值

如果 number Rnd 會產生
小於零 相同的數字,每次都使用 number 作為種子。
大於零 序列中的下一個亂數。
等於零 最近一次產生的數字。
未提供 序列中的下一個亂數。

對於任何指定的初始種子,都會產生相同的數字序列,因為每次對 Rnd 函式的後續呼叫,都會使用上一個數字作為序列中下一個數字的種子。

呼叫 Rnd 之前,請先使用沒有引數的 Randomize 陳述式,藉由根據系統計時器的種子,來初始化亂數產生器。

若要在指定的範圍內產生隨機整數,請使用以下公式:

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

此處的上限是範圍中的最高數字,下限則是範圍中的最低數字。

註:

若要重複亂數序列,請在搭配數值引數使用 Randomize 之前,先以負數引數呼叫 Rnd。搭配相同數值的 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