关键词不能为空

当前您在: 主页 > 英语 >

用EXCEL按比例生成随机数

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-28 08:47
tags:

-

2021年2月28日发(作者:conversational)



EXCEL


按比例生成随机数(或叫按机率生 成随机数)



这是百度知道一位同学的提问。要求生成范围为


1



50


的随 机整数,并且,


1



15


的机率



50%



16



36


的机率为< /p>


30%



37



50


的机率为


20%

< br>。同时还要求生成


500


组,每组


8


个。



我当时给出一个公式:


=if(rand()<0.5,round(rand()*14,0)+1,if(ra nd()<0.6,round(rand()*20,0)+16,round(r


a nd()*13,0)+37))


这里说下用


round


和用


int


的区别,用

int


生成


16



36


的随机数的话应该用


int(rand()*21 +16)



而用


round

< p>
可用


round(rand()*20+16)



这后面的


+16


放括号里面外面


都一样,因为取整操作是由小数部分决定的。



还有我第二个


if


的判断用的是


ra nd()<0.6


而不是小于


0.3


, 这是因为第二个


if


会执行的


机率是< /p>


50%



50%


乘以


0.6


就是


30%




后来楼主同学又出怪招,


要求每组无重复数字,每组从小到大排列。



这个只用单纯的公式的话不好办了。



我写了个


VBA




Sub madeRnd()


Dim i, j, k, a(8), flag, t


Sheets(


For k = 1 To 500


'


生成一组随机数字



For i = 1 To 8


flag = 0


Do


Randomize


t = Rnd()


If t < 0.5 Then


a(i) = Int(Rnd() * 15 + 1)


ElseIf t < 0.8 Then


a(i) = Int(Rnd() * 21 + 16)


Else


a(i) = Int(Rnd() * 14 + 37)


End If


If i >= 2 Then


For j = 1 To i - 1


If a(i) = a(j) Then


flag = 1


Exit For


Else


flag = 0


End If


Next j


End If


Loop While flag = 1


Next i


'


给随机数排序



For i = 7 To 1 Step -1


For j = 1 To i


If a(j) > a(j + 1) Then


a(0) = a(j)


a(j) = a(j + 1)


a(j + 1) = a(0)


End If


Next j


Next i


'


输出一组随机数字



For i = 1 To 8


Cells(k, i) = a(i)


Next i


Next k


End Sub


很奇怪,我在表格上用公式写了个机率统计, 就是统计这


8*500


个单元格的数据分布。

< br>


发现我开始用公式生成的机率很正常,非常接近


50%



30%



2 0%


这个比例,波动不超过


1%




而用


VBA


生成 的数据,机率就有点偏,总是在


48%



31%



21%


这样子。

< p>


我不得不调整一下,


如把


VBA


里面的判断条件


t<0.5


稍 微改下,


改成


t<0.5+0.0175


这样子。


稍微调高


1



15


出现的机率。



这是什 么原因?难道是


VBA



rnd()< /p>


函数没有


EXCEL


表格函数的


rand()


公正?



可以谢幕了吗?


no!!there is no little case in the world.||||||


怪同学又来了, 再次提出无理要求,


要求可以方便的随意更改数字范围




这。。。



只能用上传说中的人机交互接口了。



其实就是个窗体啦。。



这里贴张图片。


-


-


-


-


-


-


-


-



本文更新与2021-02-28 08:47,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/679990.html

用EXCEL按比例生成随机数的相关文章