唯一组合的数量

时间:2016-03-26 13:54:48

标签: java algorithm

例如我有一个字母列表: " a,b,c,a,d,a,a,b" 如何找到可以由这些字母组成的多种组合?任何长度。组合如" ab"和" ba"," aab"和" aba" - 不是唯一的。

1 个答案:

答案 0 :(得分:1)

在给定集合中存在第i个元素的C(i)条目。 那么可能的子集数(不计空单)是

M = (С[1] + 1)  * (C[2] + 1) * ...* (C[N] + 1) - 1  // product of these values

对于您的示例(4 x a,2 x b,1 x c,1 x d)

M = (4+1)*(2+1)*(1+1)*(1+1)-1 = 5*3*2*2-1 = 59