Rnd 函数 (Visual Basic)
更新:2007 年 11 月
返回一个 Single 类型的随机数。
Public Shared Function Rnd[(Number)] As Single
参数
- Number
可选。一个 Single 值或任何有效的 Single 表达式。
返回值
如果 Number 为 |
Rnd 生成 |
---|---|
小于零 |
每次都相同的数字,并将 Number 用作种子。 |
大于零 |
序列中的下一个随机数。 |
等于零 |
最近生成的数字。 |
未提供 |
序列中的下一个随机数。 |
备注
Rnd 函数返回小于 1 但大于或等于 0 的值。
Number 的值决定了 Rnd 生成随机数的方式。
由于每一次后续调用 Rnd 函数都用序列中前一个生成的数作为下一个数的种子,因此对于任何给定的初始种子都会生成相同的数字序列。
在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有一个基于系统计时器的种子。
若要生成某给定范围内的随机整数,可使用下面的公式:
randomValue = CInt(Math.Floor((upperbound - lowerbound + 1) * Rnd())) + lowerbound
这里,upperbound 是此范围内最大的数,lowerbound 是此范围内最小的数。
说明: |
---|
若要重复随机数序列,请在使用带数值参数的 Randomize 之前先调用带负参数的 Rnd。使用带有相同 Number 值的 Randomize 不会重复前一序列。 |
安全说明: |
---|
由于 Random 语句和 Rnd 函数从一个种子值开始,然后生成位于有限范围内的数字,因此,如果某个人知道生成这些数字的算法,他就可以预测结果。因此,不应使用 Random 语句和 Rnd 函数生成加密使用的随机数。 |
示例
本示例使用 Rnd 函数在范围 1 到 6 之间生成一个随机整数值。
' Initialize the random-number generator.
Randomize()
' Generate random value between 1 and 6.
Dim value As Integer = CInt(Int((6 * Rnd()) + 1))
要求
**模块:**VBMath
**程序集:**Visual Basic 运行库(在 Microsoft.VisualBasic.dll 中)
请参见
参考
修订记录
日期 |
修订 |
原因 |
---|---|---|
2008 年 7 月 |
修订了代码示例。 |
客户反馈。 |