VB。NET,这题目怎么写捏!

来源:百度知道 编辑:UC知道 时间:2024/06/06 09:59:20
题目是:试编程实现产生大于N且小于M的随机整数。
这题是用哪个公式的啊?是用哪个公式:Int (rnd*(M-N)+N)还是Int (rnd*(M-N)+N+1) ?我都不理解这些公式哦,帮忙解释了!

其实问题的关键是理解 rnd 函数

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

所以 0<=rnd*(M-N)<M-N


N<=rnd*(M-N)+N<M

N<=Int(rnd*(M-N)+N)<M
N<Int(rnd*(M-N)+N+1)<=M

而你要求的是小于M(不包含等于) ,所以上面两个公式都不对,应该为

Int(Rnd * (M - N - 1) + N + 1)

取一个区间的随机数公式为 int(rnd*(上限-下限+1)+下限)
这个是包含上限和下限2个数~
不包含就对应上限减一 和下限加一 所以你应该用第二个公式