Rnd 取随机数

文章目录
  1. 1. 功能
  2. 2. 语法
  3. 3. 参数
  4. 4. 返回值
  5. 5. 示例
  6. 6. 备注

功能

得到随机数, 详见例子

语法

结果 = Rnd([数值])

参数

参数 数据类型 解释
数值 数值型 可选参数, 一般省略, 具体定义如下
如果 数值 Rnd 生成
小于零 每次都相同的值,使用 数值 作为种子。
大于零 序列中的下一个随机数。
等于零 最近生成的数。
省略 序列中的下一个随机数。

返回值

双精度浮点数, 返回一个小于1且大于或等于0的值

示例

1
2
//输出一个随机数, 但实际测试会发现每次调试结果都一样, 原因见最后面的备注
TracePrint Rnd()
1
2
3
4
5
6
7
8
9
10
11
12
13
//高级例子1
//说明: 取指定范围内的随机整数值
//最小值: 随机最小整数值
//最大值: 随机最大整数值
Function zmRnd(最小值, 最大值)
Randomize
zmRnd = Int((最大值 - 最小值 + 1) * Rnd() + 最小值)
End Function

//调用例子
TracePrint zmRnd(1, 100)
TracePrint zmRnd(1, 100)
TracePrint zmRnd(1, 100)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//高级例子2
//说明: 从一维数组中随机取一个元素
//数组: 任意有效的一维数组
Function zmRndArray(数组)
Dim index
Randomize
index = Int((UBound(数组) + 1) * Rnd())
zmRndArray = 数组(index)
End Function

//调用例子
Dim arr
arr = Array("紫", "猫", "学", "院", "zimaoxy.com", 345911220)
TracePrint zmRndArray(arr)
TracePrint zmRndArray(arr)
TracePrint zmRndArray(arr)

备注

  • 因每一次连续调用 Rnd 函数时都用序列中的前一个数作为下一个数的种子,所以对于任何最初给定的种子都会生成相同的数列。
  • 在调用 Rnd 之前,先使用无参数的 Randomize 初始化随机种子 语句初始化随机数生成器,该生成器具有基于系统计时器的种子。