• 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)
    End Function
    msgbox GetRandomMath(20,30)

    注意:若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。

    三、获取随机整数

      Num=RandomNumber.value(startnum,endnum)  或者Num=RandomNumber.value(parameter)

  • 相关阅读:
    【第40套模拟题】【noip2011_mayan】解题报告【map】【数论】【dfs】
    【模拟题(63550802...)】解题报告【贪心】【拓扑排序】【找规律】【树相关】
    【模拟题(电子科大MaxKU)】解题报告【树形问题】【矩阵乘法】【快速幂】【数论】
    IMemoryBufferReference and IMemoryBufferByteAccess
    SoftwareBitmap and BitmapEncoder in Windows.Graphics.Imaging Namespace
    Windows UPnP APIs
    编译Android技术总结
    Windows函数转发器
    Two Ways in Delphi to Get IP Address on Android
    Delphi Call getifaddrs and freeifaddrs on Android
  • 原文地址:https://www.cnblogs.com/wangcp-2014/p/4223685.html
Copyright © 2020-2023  润新知