VBS⽣成随机数
⾃动化⼯作中常常遇到因数据重复使业务⽆法提交的问题,我想到了利⽤随机数来解决这个问题,下⾯对VBS⽣成随机数做下解析:
⼀、Randomize语句
Randomize :初始化随机数⽣成器。
语法:Randomize [number]
可选的 number 参数是 Variant 或任何有效的数值表达式。
说明:
Randomize ⽤ number 将 Rnd 函数的随机数⽣成器初始化,该随机数⽣成器给 number ⼀个新的种⼦值。如果省略 number,则⽤系统计时器返回的值作为新的种⼦值。
如果没有使⽤ Randomize,则(⽆参数的)Rnd 函数使⽤第⼀次调⽤ Rnd 函数的种⼦值。
⼆、Rnd函数
语法:Rnd[(number)]
可选的 number 参数是 Single 或任何有效的数值表达式。
函数返回值:
如果 number 的值⼩于 0,则每次都使⽤ number 作为随机数种⼦返回相同结果。
如果 number 的值⼤于 0,则返回序列中的下⼀个随机数。
如果 number 的值等于 0,则返回最近⽣成的数。
如果省略 number 参数则返回序列中的下⼀个随机数。(即默认number⼤于0)
说明:
Rnd 函数返回⼩于 1 但⼤于或等于 0 的值。
number 的值决定了 Rnd ⽣成随机数的⽅式。
对最初给定的种⼦都会⽣成相同的数列,因为每⼀次调⽤ Rnd 函数都⽤数列中的前⼀个数作为下⼀个数的种⼦。
在调⽤ Rnd 之前,先使⽤⽆参数的 Randomize 语句初始化随机数⽣成器,该⽣成器具有根据系统计时器得到的种⼦。
为了⽣成某个范围内的随机整数,可使⽤以下公式:
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
这⾥,upperbound 是随机数范围的上限,⽽ lowerbound 则是随机数范围的下限。
j举例如下:
Funtion GetRandomMath(m,n)
Randomize
GetRandomMath = Int(((n-m+1) * Rnd) + m)vbs病毒生成器
End Function
msgbox GetRandomMath(20,30)
注意:若想得到重复的随机数序列,在使⽤具有数值参数的 Randomize 之前直接调⽤具有负参数值的 Rnd。使⽤具有同样 number 值的Randomize 是不会得到重复的随机数序列的。
三、获取随机整数
Num=RandomNumber.value(startnum,endnum)  或者Num=RandomNumber.value(parameter)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。