具有n个部分的多少个不同分区可以由具有k个元素的集合组成?

时间:2012-02-16 17:54:27

标签: math discrete-mathematics data-partitioning

可以使用集合{1,2,3,4}制作多少个具有两个部分的不同分区? 此列表中有4个元素需要分为2个部分。我写了这些,总共有7种不同的可能性:

  1. {{1},{2,3,4}}
  2. {{2},{1,3,4}}
  3. {{3},{1,2,4}}
  4. {{4},{1,2,3}}
  5. {{1,2},{3,4}}
  6. {{1,3},{2,4}}
  7. {{1,4},{2,3}}
  8. 现在我必须为集合{1,2,3,...,100}回答相同的问题。 此列表中有100个元素需要分为2个部分。我知道分区的一部分最大可以是50(即100/2),最小的是1(因此一部分有1个数字而另一部分有99)。如何在不写出每个可能组合的无关列表的情况下,确定两个部分的分区有多少种不同的可能性? 答案可以简化为阶乘(例如12!)吗? 是否有一个通用公式可以用来查找具有n个部分的多少个不同的分区可以由具有k个元素的集合组成?

2 个答案:

答案 0 :(得分:6)

1)stackoverflow是关于编程的。您的问题属于https://math.stackexchange.com/领域。

2)一组n个元素中有2个 n 子集(因为n个元素中的每一个可以包含在特定子集中,也可以不包含在特定子集中)。这给了我们2个 n-1 n元素集的不同分区到两个子集中。其中一个分区是微不足道的(其中一个部分是一个空子集,另一个部分是整个原始集合),从您的示例中看起来您似乎不想计算普通分区。所以答案是2 n-1 -1(对于n = 4,它给出2 3 -1 = 7)。

答案 1 :(得分:1)

n个部分和k个元素的一般答案是the Stirling number of the second kind S(k,n)

请注意,通常的惯例是n元素总数,因此S(n,k)

计算通用公式非常难看,但k = 2可行(使用通用符号):

Stirling general formula

因此S(n,2)= 1/2((+1)* 1 * 0 n +( - 1)* 2 * 1 n +( +1)* 1 * 2 n )=(0-2 + 2 n )/ 2 = 2 n-1 - 1