子类的排列和组合

时间:2013-11-13 13:55:49

标签: algorithm permutation

我有5个类别,每个类别都有子类别。

Category   Sub-Categories
---------  ----------------
A             6
B             7
C             15
D             22
E             10

我想计算其中可能的排列和组合的总数。

我得到数字排列= 4069302和组合= 7019801,我认为这是错误的答案。

我的Approch是这样的(A1 * B1 + A1 * B2 + ..)+(B1 * C1 + B1 * C2 + ..)。

我知道有许多问题 - 答案可用于排列和组合。 但我非常困惑,请帮助我解决这个特殊问题并获得正确的排列和组合数量。

1 个答案:

答案 0 :(得分:1)

我将首先尝试描述我是如何理解这个问题的。

您有N个类别。每个类别都有Si个子类别。

您希望获得从每个类别中选择一个子类别的方法。所以A1, B2, C3, D1, E2A2, 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

我相信当你说“组合”时,其中一个涵盖了你的想法。当涉及到排列时,你需要描述你说排列时的意思。排列的内容