道歉,如果在其他地方很容易找到答案。我的数学和统计数据很弱,因此我甚至不知道我正在尝试做什么的搜索术语。 。
我有 b 匿名无法区分的存储桶,我将 i 相同的项目放入其中。我想知道所有可能的分布及其概率。例如,如果我有3个桶和3个项目,我想要的答案是:
请注意,这些存储桶是匿名的,因此我希望将相同的发行版组合起来,就像我上面所做的那样。例如,[2,1,0]案例实际上是[2,1,0],[0,2,1]等案例的总和。
另外,我有最大桶大小的约束。例如,3个球,3个桶,bucketsize = 2应返回:
可以看到概率树:
Insert item 1 into [0,0,0] -> [1,0,0] p=1
Insert item 2 into [1,0,0] -> [2,0,0] p=1/3 OR [1,1,0] 2/3
Insert item 3 into [2,0,0] -> [2,1,0] p=1.0
Insert item 3 into [1,1,0] -> [2,1,0] p=2/3 OR [1,1,1] p=1/3
So state [2,1,0] has two paths to it: 1/3*1 AND 2/3*2/3 = 7/9
So state [1,1,1] has one path to it: 2/3 * 1/3 = 2/9
以下是每种概率的另一种观点: bins_and_balls http://bents.us/Pictures/bins_balls.png
非常感谢您阅读我的问题以及您可以提供的任何帮助。我没有在https://stats.stackexchange.com/上交叉发布此内容,但如果人们认为它在那里更好,那么我会将其删除并重新发布。
更新
评论中有一些关于某些算法正确性的讨论。为了帮助验证,我编写了以下模拟器:
#! /usr/bin/env python
from __future__ import division
import random
def simulate(num_bucks,items,bsize,iterations=50000):
perms = dict()
for n in range(iterations):
buckets = [0] * num_bucks
for i in range(items):
while True:
b = random.randint(0,num_bucks-1)
if buckets[b] < bsize:
break # kludge, loop until we find an unfilled bucket
buckets[b] +=1
buckets.sort()
buckets = tuple(reversed(buckets))
try:
perms[buckets]['count'] += 1
except KeyError:
perms[buckets] = {'perm' : buckets, 'count' : 1}
for perm in perms.values():
perm['prob'] = perm['count'] / iterations
return perms
def main():
perms = simulate(num_bucks=3,items=3,bsize=2)
for perm in perms.values():
print perm
if __name__ == "__main__":
main()
其中有3个桶,3个球,2个桶的输出,如:
(1, 1, 1) 0.22394
(2, 1, 0) 0.77606
答案 0 :(得分:0)
我刚刚意识到你可能无法使用我原来的建议来获得更大的n和r值。至少,不是没有一些修改。例如,如果你将4个项目放入5个桶中,你可以拥有(其中包括):
cadena = cadena.replace("|", "")
所以&#34; n选择r&#34;下面描述的技巧不起作用,因为有两种不同的方法只能使用两个桶。
这是一个选择r&#34;问题。组合
对于{3,1,0,0,0}
{2,2,0,0,0}
案例,您要问&#34;我可以从一组四个中选择一个项目有多少种不同的方法?&#34;答案是四。如果集合包含数字1,2,3,4,那么您的组合为{3,0,0,0}
。
对于{1},{2},{3},{4}
案例,您要问有多少种不同的方式从四个中选择两个项目。答案是六:{2,1,0,0}
。
对于{1,2},{1,3},{1,4},{2,3},{2,4},{3,4}
案例,答案是九。我不会列举它们。
&#34; n选择r&#34;计算是{1,1,1,0}
有关详细信息,请参阅http://www.calculatorsoup.com/calculators/discretemathematics/combinations.php。