Visual Basic 语言参考 Rnd 函数请参见 数学摘要 | Randomize 语句 返回一个 Single 类型的随机数。Rnd[(number)] 参数 number 可选。一个 Single 值或任何有效的 Single 表达式。 返回值 如果 number 为 Rnd 生成 小于零 每次都相同的数字,并将 number 用作种子。 大于零 序列中的下一个随机数。 等于零 最近生成的数字。 未提供 序列中的下一个随机数。 备注 Rnd 函数返回小于 1 但大于或等于 0 的值。number 的值决定了 Rnd 生成随机数的方式:由于每一次后续调用 Rnd 函数都用序列中前一个生成的数作为下一个数的种子,因此对于任何给定的初始种子都会生成相同的数字序列。在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有一个基于系统计时器的种子。若要生成某给定范围内的随机整数,可使用此公式:Int((upperbound - lowerbound + 1) * Rnd + lowerbound) 这里,upperbound 是此范围的上限,而 lowerbound 是范围的下限。注意 若要重复随机数序列,请在使用带数值参数的 Randomize 之前先调用带负参数的 Rnd。使用带有相同 number 值的 Randomize 不会重复前一序列。 示例 本例使用 Rnd 函数生成一个 1 到 6 之间的随机整数值。Dim MyValue As Integer MyValue = CInt(Int((6 * Rnd()) + 1)) ' Generate random value between 1 and 6.
最好语句前面再加一个 Randomize
Dim s As Single, i As IntegerPrivate Sub Command1_Click() Randomize s = Rnd() i = Int(s * 10) '范围0-9 Debug.Print i
End Sub
另外一种生成随机数的方法: 假设需要一个不超过5位数的随机的整数 Private Sub Command1_Click() Dim s As Single, i As Integer,j As Integer Randomize for j=1 to 5 s = Rnd() i = Int(s * 10) '范围0-9 j=j*10+i next End Sub现在j就是一个随机的整数了,不超过5位数
数学摘要 | Randomize 语句
返回一个 Single 类型的随机数。Rnd[(number)]
参数
number
可选。一个 Single 值或任何有效的 Single 表达式。
返回值
如果 number 为 Rnd 生成
小于零 每次都相同的数字,并将 number 用作种子。
大于零 序列中的下一个随机数。
等于零 最近生成的数字。
未提供 序列中的下一个随机数。 备注
Rnd 函数返回小于 1 但大于或等于 0 的值。number 的值决定了 Rnd 生成随机数的方式:由于每一次后续调用 Rnd 函数都用序列中前一个生成的数作为下一个数的种子,因此对于任何给定的初始种子都会生成相同的数字序列。在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有一个基于系统计时器的种子。若要生成某给定范围内的随机整数,可使用此公式:Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
这里,upperbound 是此范围的上限,而 lowerbound 是范围的下限。注意 若要重复随机数序列,请在使用带数值参数的 Randomize 之前先调用带负参数的 Rnd。使用带有相同 number 值的 Randomize 不会重复前一序列。
示例
本例使用 Rnd 函数生成一个 1 到 6 之间的随机整数值。Dim MyValue As Integer
MyValue = CInt(Int((6 * Rnd()) + 1)) ' Generate random value between 1 and 6.
Randomize s = Rnd()
i = Int(s * 10) '范围0-9
Debug.Print i
End Sub
假设需要一个不超过5位数的随机的整数
Private Sub Command1_Click()
Dim s As Single, i As Integer,j As Integer Randomize
for j=1 to 5
s = Rnd()
i = Int(s * 10) '范围0-9
j=j*10+i
next
End Sub现在j就是一个随机的整数了,不超过5位数
Randomize
debug.print a+int(rnd * (b-a))
function rndint(a,b)'a 表示要取得的整数的最小值,b是要取得整数的最大值
randomize
rndint=int(rnd*(b-a)+1)+a
end function