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))

要求

命名空间:Microsoft.VisualBasic

**模块:**VBMath

**程序集:**Visual Basic 运行库(在 Microsoft.VisualBasic.dll 中)

请参见

参考

Randomize 函数 (Visual Basic)

数学摘要

Randomize 函数 (Visual Basic)

修订记录

日期

修订

原因

2008 年 7 月

修订了代码示例。

客户反馈。