vb中int(rnd*遵循什么公式?为什么这么复杂

 我来答
网海1书生
科技发烧友

2015-06-27 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26226

向TA提问 私信TA
展开全部
不复杂,你只要结合生活基础常识(甚至都不需要懂得数学原理)去理解就简单了。比如你要获得一个5到10之间(包括5和10)的随机整数,我们要先看看5到10之间总共有几个整数,你可以掰着手指头算:5、6、7、8、9、10总共6个,也可以这样样算:最大数(或者说上限)减去最小数(下限)再加1,即10-5+1=6,这个也用不着追究为什么,农民伯伯都知道这么算!
此外,Rnd这个函数的返回值是一个0到1(包括0但不包括1)之间的纯小数(这个也不用问为什么,VB就是这样规定的),把它与上面的那个6相乘,就得到一个0到6(包括0但不包括6)之间的实数(带小数的数),然后再取整(就是把小数去掉),就得到0到5(包括0和5)之间的整数了。最后再把这个数加上当初设定的数值范围的最小数(即下限)6,就是最终结果了。
所以公式就是:
Int(Rnd * (上限 - 下限 + 1)) + 下限
悠悠周郎
2023-01-12 · TA获得超过2573个赞
知道大有可为答主
回答量:3324
采纳率:95%
帮助的人:511万
展开全部
Int(Rnd * (最大值 - 最小值 + 1)) + 最小值
这样可以生成最大值和最小值之间的任意整数:
由于 Rnd 是随机小数(不可能等于 1,但是可能等于 0)。按照上式,例如最大值是100,最小值是 0,则生成的数值为 Int(随机数 * (100 - 0 + 1)) + 0,意即可能是 0,也可能是 100(随机数是 0.99999999……)。Int 不关心小数后面的数值,不是四舍五入,所以即使得到 100.678……之类,也会返回 100
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式