VB中随机函数的用法

教课书上写道int(100*rnd)+1 ---产生1-100间的随机整数
我想不明白这括号后面+1是什么意思
能不能说明一下原理呢

1)Rnd 函数,返回一个包含随机数值的 Single。

说明:

Rnd 函数返回小于 1 但大于或等于 0 的值。

2)Int 函数,返回参数的整数部分。

语法:
Int(number)
Int 会删除 number 的小数部份而返回剩下的整数。
3)Rnd 函数示例:
本示例使用 Rnd 函数随机生成一个 1 到 6 的随机整数。
Dim MyValue
MyValue = Int((6 * Rnd) + 1) ' 生成 1 到 6 之间的随机数值。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-06
让我给你个合理的解释:

严格的说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(100*rnd())+1
0+1=1
99+1=100

最后得出区间:1-100本回答被提问者采纳
第2个回答  2020-02-23
int((rnd*6)+1),随即产生1到6之间的
整数
rnd()
函数
随即产生一个大于等于0但小于1的
单精度浮点数

例如:你要随即产生10到96之间的整数
int(rnd*87
+10)
假设产生a到b之间的整数
则这个范围应该是b-a,由于rnd随机产生的数小于1且大于等于0,则
应该将rnd()乘以(b-a+1),则int(rnd*(b-a+1))就产生0到b-a之间的整数
再加上a以后就是a到b之间的整数,即int(rnd*(b-a+1)+a)
第3个回答  2007-11-04
rnd()本身返回0~1(小于1)间的随机数,
100*rnd就成了100以内的数字
int(100*rnd),取整后,最大只有99,最小是0
所以int(100*rnd)+1就在1~100之间了.
第4个回答  2007-11-04
这是MSDN中的帮助.你看下吧..就知道100和1是怎么来的了.

为了生成某个范围内的随机整数,可使用以下公式:
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。
相似回答