vb产生两个数之间的随机数闭区间
答案:4 悬赏:30 手机版
解决时间 2021-11-12 01:41
- 提问者网友:愿为果
- 2021-11-11 10:18
vb产生两个数之间的随机数闭区间
最佳答案
- 五星知识达人网友:千杯敬自由
- 2021-11-11 11:54
1、设置随机产生[n,m]之间的随机数(m>n),最小的随机数是n,然后在n的基础上加上m-n的差值内的随机数就可以了;
2、随机数代码是int(rnd*(m-n))+n
3、产生两个数之间的随机数闭区间示例(以产生一个[10,90]之间的随机数为例):
Private Sub Command1_Click()
Dim n As Integer
Randomize
n = Int(Rnd * 90) + 10
Print n;
End Sub
2、随机数代码是int(rnd*(m-n))+n
3、产生两个数之间的随机数闭区间示例(以产生一个[10,90]之间的随机数为例):
Private Sub Command1_Click()
Dim n As Integer
Randomize
n = Int(Rnd * 90) + 10
Print n;
End Sub
全部回答
- 1楼网友:掌灯师
- 2021-11-11 14:18
rnd*(b-a)+a
- 2楼网友:未来江山和你
- 2021-11-11 13:43
随机函数Rnd()会产生0到1之间的一个单精度的小数(这个数字不包括0和1)。因此,如果在精度上没有要求,可以简单的通过一个公式将其放大到任何一个你需要的区间内。我们假设你的区间是(a, b),则公式是: r = Rnd()*(b-a)+b。但是这个是开区间的,两个端点不会被取到。
对于闭区间的问题,恐怕需要考虑进一步离散化这个随机取值。比如说,考虑你的区间内保留几位小数,我们假设是n,那么随机数可以做成: r = Int(Rnd()*((10^n)*(b-a)+1))/(10.0^n) + b。但是,这个n的取值不能太大,如果超过单精度的分辨率就失去意义了。一般4以下都应该没啥大问题。
对于闭区间的问题,恐怕需要考虑进一步离散化这个随机取值。比如说,考虑你的区间内保留几位小数,我们假设是n,那么随机数可以做成: r = Int(Rnd()*((10^n)*(b-a)+1))/(10.0^n) + b。但是,这个n的取值不能太大,如果超过单精度的分辨率就失去意义了。一般4以下都应该没啥大问题。
- 3楼网友:从此江山别
- 2021-11-11 12:10
说实在的,你的第二段话我没怎么看明白
我就按照标题帮助你一下吧,你想要一个有小数的随机数区间,其实并不难,只需要在你原来的代码上稍作改动就行,我们以5~10举例吧,如果你需要得到5~10之间省略到6位小数的随机数的话,代码如下:
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯