Rnd 取随机数
🎯功能
得到随机数, 详见例子
📜语法
结果 = Rnd([数值])
📥参数
参数 | 数据类型 | 解释 |
---|---|---|
数值 | 数值型 | 可选参数, 一般省略, 具体定义如下 |
如果 数值 为 | Rnd 生成 |
---|---|
小于零 | 每次都相同的值,使用 数值 作为种子。 |
大于零 | 序列中的下一个随机数。 |
等于零 | 最近生成的数。 |
省略 | 序列中的下一个随机数。 |
📤返回
双精度浮点数
, 返回一个小于1
且大于或等于0
的值
💡示例
//输出一个随机数, 但实际测试会发现每次调试结果都一样, 原因见最后面的备注
TracePrint Rnd()
//高级例子1
//说明: 取指定范围内的随机整数值
//最小值: 随机最小整数值
//最大值: 随机最大整数值
Function zmRnd(最小值, 最大值)
Randomize
zmRnd = Int((最大值 - 最小值 + 1) * Rnd() + 最小值)
End Function
//调用例子
TracePrint zmRnd(1, 100)
TracePrint zmRnd(1, 100)
TracePrint zmRnd(1, 100)
//高级例子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 语句初始化随机数生成器,该生成器具有基于系统计时器的种子。