学习脚本制作: Rnd随机函数

2025-11-10 00:30:08

1、公式】     Int((upperbound - lowerbound + 1) * Rnd + lowerbound) 【中文翻译】  取整((上界-下界+1)*Rnd+下界)                     【功能】   取 下界到上届 范围内的随机整数 ,随机到的整数范围包含下界和上界              例如:Int((100-1+1) * Rnd +1),取 1 -100 之间的包含1和100的随机整数                        如果不按照公式写,我们直接写 int(Rnd(100))                        那么,随机到的整数,范围是0-99,永远随机不到100这个值。

按照顺序解剖这个公式,首先是int函数。

2、Int函数

【功能】      小数部分舍去,返回数字的整数部分。

【例子】       Int(99.8)    ' 返回值为 99。                      Int(99.4) ' 返回值为 99。          

upperbound 和 lowerbound 通过上面的中文翻译,我们已经知道了,它们是随机函数的界限值,upperbound 是大的数,lowerbound 是小的数。 那我们接下去讲讲今天的主角Rnd。

3、Rnd函数

【功能】    Rnd 函数返回一个小于 1 但大于或等于 0 的值。【分析】    也就是说它返回的是 0-0.9999999 (N个9) 之间的数,接近1但不等1.   

           知道了Rnd函数的随机值范围,咱们就可以做进一步分析了~

4、公式运算分析

 假设我们要获取 1-100之间的随机数。1是下界(lowerbound),100是上界(upperbound),代入公式: Int((upperbound - lowerbound + 1) * Rnd + lowerbound) 

第一步:运算(upperbound - lowerbound + 1) ,代入100和1,得到100

第二步:100* Rnd, 我们知道rnd函数得到的最大值是0.99999无限接近1,

我们假设它是最大值0.99999 ,来计算下得到的随机数最大的会是多少。那么现在100*rnd就等于99.99999

第三步:加上 lowerbound,99.99999+1=100.99999

第四步:int(100.999999),把小数部分都舍去,那就是100。

按照上面的方式,我们把rnd的值设置为最小值0,得到的结果是:  1(下界值)

现在我们不加1运算看看, Int((upperbound - lowerbound ) * Rnd + lowerbound) 

  int((100-1)*rnd+1),rnd依然假设为最大值0.99999

  那么,运算结果为:99 ,无法随机得到100这个值。

如果 Int((upperbound - lowerbound ) * Rnd ) 把+ lowerbound去掉

下界的效果也会失效,int(100*rnd),随机值的范围就在:0-99之间。

再然后,就不得不提下,rnd函数的年度最佳小伙伴Randomize 函数

5、Randomize 函数

【功能】    初始化随机数生成器。

  如果不想出现,每一次随机到的数都和第一次随机到的数一样的情况。

  就需要在使用rnd函数之前,使用 Randomize 函数。初始化随机数的生成器,才会产生新的随机数。

 

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢