VB中随机函数的用法

[复制链接]
查看11 | 回复4 | 2020-2-23 18:58:16 | 显示全部楼层 |阅读模式
这是MSDN中的帮助.你看下吧..就知道100和1是怎么来的了.为了生成某个范围内的随机整数,可使用以下公式:Int((upperbound - lowerbound + 1) * Rnd + lowerbound)这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。
回复

使用道具 举报

千问 | 2020-2-23 18:58:16 | 显示全部楼层
rnd()本身返回0~1(小于1)间的随机数,100*rnd就成了100以内的数字int(100*rnd),取整后,最大只有99,最小是0所以int(100*rnd)+1就在1~100之间了.
回复

使用道具 举报

千问 | 2020-2-23 18:58:16 | 显示全部楼层
不加一是产生0-99间的随机整数,加一之后就变成1-100了
回复

使用道具 举报

千问 | 2020-2-23 18:58:16 | 显示全部楼层
让我给你个合理的解释:严格的说rnd()函数只产生0到1直接的随机数(但绝不包括0和1),那么得:(当然 位数比我下面的还要大 举个例子)0的无限逼近:0.00000011的无限逼近:0.9999999int()函数是个取整函数,它的最大特点(往往让人错误)是忽略了小数部分.结果:int(0.0000001)=0int(0.9999999)=0从0和1的无限逼近值* 100(即100*rnd()) 那么 100倍0的无限逼近:00.00001(仍然是0啊) int(100*rnd())=0100倍1的无限逼近:99.99999(永远也到不了100啊 ) int(100*rnd())=99那么int(100*rnd())+10+1=199+1=100最后得出区间:1-1001)Rnd 函数,返回一个包含随机数值的 Single。

说明:Rnd 函数返回小于 1 但大于或等于 0 的值。2)Int 函数,返回参数的整数部分。语法:Int(number)Int 会删除 number 的小数部份而返回剩下的整数。3)Rnd 函数示例:本示例使用 Rnd 函数随机生成一个 1 到 6 的随机整数。Dim MyValueMyValue = Int((6 * Rnd) + 1) ' 生成 1 到 6 之间的随机数值。
回复

使用道具 举报

千问 | 2020-2-23 18:58:16 | 显示全部楼层
因为rnd是>0且0且<100的浮点数,也就是0.00....001到99.999...999的浮点数因此int(100*rnd)的返回值是0,1,2....97,98,99的整数那么+1的作用就是增加偏移量其实,把+1放入括号内是更合理的思路int(100*rnd+1)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行