VB中RND函数的问题

Rnd函数不可能产生的值为什么是1,为什么不能产生1就可以产生0... Rnd函数不可能产生的值为什么是1,为什么不能产生1就可以产生0 展开
 我来答
kracule
2009-07-02 · TA获得超过2085个赞
知道小有建树答主
回答量:618
采纳率:0%
帮助的人:407万
展开全部
Rnd 函数

返回一个包含随机数值的 Single。

语法

Rnd[(number)]

可选的 number 参数是 Single 或任何有效的数值表达式。

返回值

如果 number 的值是 Rnd 生成
小于 0 每次都使用 number 作为随机数种子得到的相同结果。
大于 0 序列中的下一个随机数。
等于 0 最近生成的数。
省略 序列中的下一个随机数。

说明

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

number 的值决定了 Rnd 生成随机数的方式。

对最初给定的种子都会生成相同的数列,因为每一次调用 Rnd 函数都用数列中的前一个数作为下一个数的种子。

在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有根据系统计时器得到的种子。

为了生成某个范围内的随机整数,可使用以下公式:

Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。

注意 若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。
百度网友3c15ecd54
推荐于2016-03-06 · TA获得超过137个赞
知道小有建树答主
回答量:134
采纳率:0%
帮助的人:130万
展开全部
Rnd 函数产生的是一个 0 <= x < 1 的浮点数,所以不会产生1呀,如果你想取得0~n的随机数,可以尝试一下办法

Int(Rnd()*(n+1))
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
52chenbairui
2009-07-02 · TA获得超过118个赞
知道答主
回答量:84
采纳率:0%
帮助的人:58.6万
展开全部
我猜你之中的Rnd函数有一条
‘if y not 1
y=0’
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
微软专家张海
2009-07-02 · TA获得超过748个赞
知道小有建树答主
回答量:564
采纳率:100%
帮助的人:0
展开全部
就是这样设计的
Rnd 函数返回小于 1 但大于或等于 0 的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式