Int(rnd*100)是产生0~100的随机整数吗
来源:网络收集 点击: 时间:2024-03-28不是,严格的说rnd()函数只产生0到1直接的随机数(但绝不包括0和1)。
例如:
0的无限逼近:0.0000001
1的无限逼近:0.9999999
int()函数是个取整函数,它的最大特点(往往让人错误)是忽略了小数部分。
结果:
int(0.0000001)=0 int(0.9999999)=0
从0和1的无限逼近值 * 100(即100*rnd())
那么:
100倍0的无限逼近:00.00001 (仍然是0啊) int(100*rnd())=0
100倍1的无限逼近:99.99999 (永远也到不了100啊 ) int(100*rnd())=99
那么Int(rnd*100)
这里产生的是0~99。
注意事项
Rnd 函数可返回一个随机数。数字总是小于 1 但大于或等于 0 。
因每一次连续调用 Rnd 函数时都用序列中的前一个数作为下一个数的种子,所以对于任何最初给定的种子都会生成相同的数列。
在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有基于系统计时器的种子。
要产生指定范围的随机整数,请使用以下公式:
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
这里, upperbound 是此范围的上界,而 lowerbound 是此范围内的下界。
注释:要重复随机数的序列,请在使用数值参数调用 Randomize 之前,立即用负值参数调用 Rnd。使用同样 number 值的 Randomize 不能重复先前的随机数序列。
语法:
Rnd
例子1:
document.write(Rnd)
输出:
0.7055475
例子2:
如果您使用例子 1 中的代码,相同的随机数会重复出现。
可以使用 Randomize 语句在页面每次重新载入的时候生成一个新的随机数:
Randomizedocument.write(Rnd)
输出:
0.4758112
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_368945.html