会编程的大神们帮帮忙吧!C语言或excel里的宏、VBA等等什么的都可以,只要能解决我这个问题的就行
某盒子里有M个球[每个球代表一个不同的数值],现要在该盒子中随机抽球,每次抽取一个球并记下球上的数值,然后将抽出的球放回盒子中继续抽球,一共抽取N次,然后将以上抽取的N个...
某盒子里有M个球[每个球代表一个不同的数值],现要在该盒子中随机抽球,每次抽取一个球并记下球上的数值,然后将抽出的球放回盒子中继续抽球,一共抽取N次,然后将以上抽取的N个数值求出平均值X[不同N个数值的平均值X有可能是相等的],现需得出不同的X出现的概率,最后结果最好是能导出到EXCEL里
【具体M、N可以是11个数抽3个数、11抽5、13抽3、13抽5】 展开
【具体M、N可以是11个数抽3个数、11抽5、13抽3、13抽5】 展开
2012-05-05 · 知道合伙人软件行家
关注
展开全部
打开一个Excel表,按ALT+F11进入VBE窗口,在左上方的工程-VBAProject那里的sheet1上双击一下,在右边的空白区域输入下列代码:
Sub aa()
M = Val(InputBox("请输入放入球的数量", "提示"))
N = Val(InputBox("请输入放入抽取的次数", "提示"))
Randomize
kk = 1
Const MM = 100 '开关,控制抽取的次数,这里的100表示抽取100次,如果要抽10000次,将100改成10000即可
Cells(kk, 1) = "X"
Cells(kk, 2) = "次数"
Cells(kk, 3) = "概率"
For i = 1 To MM
k = 0
x = 0
For j = 1 To N '抽取N次
k = Int(Rnd() * (M - 1)) + 1
x = x + k
Next j
x = x / N '取得N次的平均值X
tmp = x
Set c = Range("A:A").Find(tmp, LookIn:=xlValues, lookat:=xlWhole)
If c Is Nothing Then
j = 0
kk = kk + 1
Cells(kk, 1) = tmp
Cells(kk, 2) = 1
Cells(kk, 3) = Cells(kk, 2) / MM '相对总次数的概率
Else
Cells(c.Row, 2) = Cells(c.Row, 2) + 1
Cells(c.Row, 3) = Cells(c.Row, 2).Value / MM
End If
Next
End Sub
然后关闭VBE,回到Excel界面,按ALT+F8,选择sheet1.aa执行即可看到结果。
Sub aa()
M = Val(InputBox("请输入放入球的数量", "提示"))
N = Val(InputBox("请输入放入抽取的次数", "提示"))
Randomize
kk = 1
Const MM = 100 '开关,控制抽取的次数,这里的100表示抽取100次,如果要抽10000次,将100改成10000即可
Cells(kk, 1) = "X"
Cells(kk, 2) = "次数"
Cells(kk, 3) = "概率"
For i = 1 To MM
k = 0
x = 0
For j = 1 To N '抽取N次
k = Int(Rnd() * (M - 1)) + 1
x = x + k
Next j
x = x / N '取得N次的平均值X
tmp = x
Set c = Range("A:A").Find(tmp, LookIn:=xlValues, lookat:=xlWhole)
If c Is Nothing Then
j = 0
kk = kk + 1
Cells(kk, 1) = tmp
Cells(kk, 2) = 1
Cells(kk, 3) = Cells(kk, 2) / MM '相对总次数的概率
Else
Cells(c.Row, 2) = Cells(c.Row, 2) + 1
Cells(c.Row, 3) = Cells(c.Row, 2).Value / MM
End If
Next
End Sub
然后关闭VBE,回到Excel界面,按ALT+F8,选择sheet1.aa执行即可看到结果。
追问
这里每个球都代表一个数值,然后抽N次,你这个好像不太对吧
追答
k = Int(Rnd() * (M - 1)) + 1
这里表示抽球的动作。
For j = 1 To N '抽取N次
k = Int(Rnd() * (M - 1)) + 1
x = x + k
Next j
这表示抽N个球,X表示平均值。
这里只能取得一个X,你是需要不同的X的概率,所以只能用电脑模拟100次即MM列出来X出现的概率,MM越大,x的概率越接近。
展开全部
随机抽取会有重复出现的问题,你所说的概率应该是指所有的组合裏面平均数相同的概率吧?
更多追问追答
追问
是所有种可能出现的平均值X里每个X出现的概率
追答
还有个问题,给定的M数组的值,不固定吗?应为不一样的值,它的平均值肯定不一样么,这样算出来的X值应该也是不同的吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询