VB。NET,这题目怎么写捏!
来源:百度知道 编辑:UC知道 时间:2024/06/06 09:59:20
题目是:试编程实现产生大于N且小于M的随机整数。
这题是用哪个公式的啊?是用哪个公式:Int (rnd*(M-N)+N)还是Int (rnd*(M-N)+N+1) ?我都不理解这些公式哦,帮忙解释了!
这题是用哪个公式的啊?是用哪个公式: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个数~
不包含就对应上限减一 和下限加一 所以你应该用第二个公式