VB中随机函数的用法

教课书上写道int(100*rnd)+1---产生1-100间的随机整数我想不明白这括号后面+1是什么意思能不能说明一下原理呢... 教课书上写道int(100*rnd)+1 ---产生1-100间的随机整数
我想不明白这括号后面+1是什么意思
能不能说明一下原理呢
展开
 我来答
zdingyun
推荐于2018-03-13 · 知道合伙人软件行家
zdingyun
知道合伙人软件行家
采纳数:15429 获赞数:48173
1982年上海业余工业大学化工系毕业 现退休

向TA提问 私信TA
展开全部

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 之间的随机数值。

xuyile510824
推荐于2017-10-06 · TA获得超过582个赞
知道小有建树答主
回答量:557
采纳率:0%
帮助的人:586万
展开全部
让我给你个合理的解释:

严格的说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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
字昆郯凌柏
2020-02-23 · TA获得超过3609个赞
知道大有可为答主
回答量:3124
采纳率:31%
帮助的人:168万
展开全部
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)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2007-11-04 · TA获得超过1809个赞
知道大有可为答主
回答量:1971
采纳率:0%
帮助的人:2350万
展开全部
rnd()本身返回0~1(小于1)间的随机数,
100*rnd就成了100以内的数字
int(100*rnd),取整后,最大只有99,最小是0
所穗颂以猜吵郑int(100*rnd)+1就在碰野1~100之间了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
VB妮可
2007-11-04 · TA获得超过3333个赞
知道大有可为答主
回答量:2574
采纳率:0%
帮助的人:0
展开全部
这是MSDN中的帮助.你看下吧..就知道100和1是怎么来的了.

为了生成某个范围内的随机整数,可樱行使用以下公式:
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下档颂型行猜限。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式