vb中int(rnd*遵循什么公式?为什么这么复杂
展开全部
不复杂,你只要结合生活基础常识(甚至都不需要懂得数学原理)去理解就简单了。比如你要获得一个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)) + 下限
此外,Rnd这个函数的返回值是一个0到1(包括0但不包括1)之间的纯小数(这个也不用问为什么,VB就是这样规定的),把它与上面的那个6相乘,就得到一个0到6(包括0但不包括6)之间的实数(带小数的数),然后再取整(就是把小数去掉),就得到0到5(包括0和5)之间的整数了。最后再把这个数加上当初设定的数值范围的最小数(即下限)6,就是最终结果了。
所以公式就是:
Int(Rnd * (上限 - 下限 + 1)) + 下限
展开全部
Int(Rnd * (最大值 - 最小值 + 1)) + 最小值
这样可以生成最大值和最小值之间的任意整数:
由于 Rnd 是随机小数(不可能等于 1,但是可能等于 0)。按照上式,例如最大值是100,最小值是 0,则生成的数值为 Int(随机数 * (100 - 0 + 1)) + 0,意即可能是 0,也可能是 100(随机数是 0.99999999……)。Int 不关心小数后面的数值,不是四舍五入,所以即使得到 100.678……之类,也会返回 100
这样可以生成最大值和最小值之间的任意整数:
由于 Rnd 是随机小数(不可能等于 1,但是可能等于 0)。按照上式,例如最大值是100,最小值是 0,则生成的数值为 Int(随机数 * (100 - 0 + 1)) + 0,意即可能是 0,也可能是 100(随机数是 0.99999999……)。Int 不关心小数后面的数值,不是四舍五入,所以即使得到 100.678……之类,也会返回 100
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询