跳到主要内容

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 语句初始化随机数生成器,该生成器具有基于系统计时器的种子。