我有 5 个类别,每个类别都有子类别。
Category Sub-Categories
--------- ----------------
A 6
B 7
C 15
D 22
E 10
我想计算其中可能的排列和组合的总数。
我得到数字排列 = 4069302 和组合 = 7019801,我认为这是一个错误的答案。
我的方法是这样的 (A1*B1+A1*B2+..)+(B1*C1+B1*C2+..).
我知道有很多关于排列和组合的问答。 但我很困惑,请帮助我解决这个特定问题并获得正确数量的排列和组合。
最佳答案
我将首先尝试描述我是如何理解这个问题的。
您有 N
个类别。每个类别都有 Si
子类别。
您想获得从每个类别中准确挑选一个子类别的方法数。所以 A1, B2, C3, D1, E2
,或者 A2, B1, C1, D1, E5
...
对于类别 1,您有 S1
可能的选择,对于类别 2,有 S2
的选择...所以答案是 Si
的乘积 - 对于您发布的示例,6 * 7 * 15 * 22 * 10 = 138600。
到目前为止,这是顺序不变的,它只计算不同子类别集的解决方案。如果顺序很重要(A1、B1、...!= B1、A1、...):
我们的每个解决方案都有 N!
个排列。所以答案是Si
的乘积(如上)* N!
。在您的示例中,这是 138600 * 6! = 99792000。
我相信其中一个涵盖了您在说“组合”时的想法。说到排列,你需要描述你说排列的意思。什么的排列?
关于algorithm - 子范畴的排列组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19955641/