会编程的大神们帮帮忙吧!C语言或excel里的宏、VBA等等什么的都可以,只要能解决我这个问题的就行

某盒子里有M个球[每个球代表一个不同的数值],现要在该盒子中随机抽球,每次抽取一个球并记下球上的数值,然后将抽出的球放回盒子中继续抽球,一共抽取N次,然后将以上抽取的N个... 某盒子里有M个球[每个球代表一个不同的数值],现要在该盒子中随机抽球,每次抽取一个球并记下球上的数值,然后将抽出的球放回盒子中继续抽球,一共抽取N次,然后将以上抽取的N个数值求出平均值X[不同N个数值的平均值X有可能是相等的],现需得出不同的X出现的概率,最后结果最好是能导出到EXCEL里
【具体M、N可以是11个数抽3个数、11抽5、13抽3、13抽5】
展开
 我来答
表里如一
2012-05-05 · 知道合伙人软件行家
表里如一
知道合伙人软件行家
采纳数:2066 获赞数:11638
从事6年生产管理,期间开发了多款小软件进行数据处理和分析,后

向TA提问 私信TA
展开全部
打开一个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执行即可看到结果。
追问
这里每个球都代表一个数值,然后抽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的概率越接近。
小知知快长大
2012-05-05 · TA获得超过267个赞
知道小有建树答主
回答量:434
采纳率:0%
帮助的人:279万
展开全部
随机抽取会有重复出现的问题,你所说的概率应该是指所有的组合裏面平均数相同的概率吧?
更多追问追答
追问
是所有种可能出现的平均值X里每个X出现的概率
追答
还有个问题,给定的M数组的值,不固定吗?应为不一样的值,它的平均值肯定不一样么,这样算出来的X值应该也是不同的吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秘书部部长
2012-05-05
知道答主
回答量:49
采纳率:0%
帮助的人:18.6万
展开全部
无能为力啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式