教授我回来了。表述有限,还请原谅啊
我仔细看了下算式
1)2^n - 1 - n是否存在重复排列的情况?(我之前也没考虑到)
当n=4,结果应该是11:ab, ac, ad, bc, db, cd, abc, abd, acd, bcd, abcd,即6+4+1
可是在我们选出ab的时候,cd自然成为了一组,以此类推,两两一组有半数重复,所以一共可能应该是3+4+1=8
2)剩下的人自动捆绑成一块,那么忽略了多组捆绑的可能。为了简化,我下面把单人也算在排列组合里方便演示(不然组合数过多)
当n=4,考虑单人情况,a, b, c, d, ab, ac, ad, bc, db, cd, abc, abd, acd, bcd, abcd
除了剩下的人自成一组要考虑重复的情况,我们还需要考虑多组捆绑,比如
a、b、cd
a、c、bd
a、d、bc
b、c、ad
....
所以我脑子现在想的是programming一个iteration的function GetCombinationCount
终止条件是pool只剩下1或者2人。
n阶就是要做的就是 for(k : [1, n]), Sum(C(n, k) *GetCombinationCount(n-k))
但问题是重复的部分没有考虑
Mireille 发表于 2021-06-01 18:22
你说的很对,(1)就是列出了所有的组,并不是列出所有的分组
分组问题是棉签问题。