相同的对象进入相同的容器
相同的对象放入相同的容器中是组合学中的一类问题,其目标是计算将若干相同对象放入相同容器的方法的数量。
虽然类似的问题不同的对象进入不同的容器和相同的对象放入不同的容器中有封闭形式的解决方案在美国,“相同的对象放入相同的容器”问题提出了一些特别的挑战,以有效地找到解决方案。
在这种类型的问题中,对象是相同的。这意味着将哪些对象组合在一起并不重要;它只与每个容器中有多少对象有关。除此之外,容器是相同的。这意味着容器的顺序无关紧要,容器必须是非空的。
有5个相同的球。这些球有多少种分组方式?可以有任意数量的组,组的大小可以是除0之外的任意大小。
这个问题要求我们找出5个相同对象在任意数量相同容器中的分布数量。这些分布如下所示:
总的来说,有 把球分组的方法。
“相同的对象放入相同的容器”问题与问题密切相关分区一个整数.将使用许多相同的解决问题的策略。“相同的对象进入任意数量相同的容器”类型的问题等同于整数问题的划分。
与整数分区的关系
相同的对象 相同的箱子
到目前为止,本页讨论的问题都是“相同的对象放入任意数量的相同容器”。这些问题可以简单地通过寻找来解决 ,在那里 为对象的数量。
“相同的对象放入相同的容器”类型的问题有些不同,因为它们需要特定数量的非空容器。幸运的是,可以使用许多用于整数分区的相同问题解决策略。这个问题可以认为是找出一个数字分成特定数量的部分的分区数。
6个相同的球分成3组有多少种方法?
这个问题可以建模为找到的分区 到完全 部分。下面列出了这些分区:
总的来说,有 表达方式 球进 组。
如果 和 是相对较小的,那么就很容易列出所有的分布,如上所述。对于更大的 和 ,则需要采取不同的方法递归.需要下面的定理:
一个整数的分区数 成 的分区数与分区数相同 最大的部分是 .
配分函数的最大部分是 表示为 .
这个定理的证明在整数分区页面。这个定理的好处是它允许在更大的范围内找到分区可预测的的方式。
是什么 ?
根据上述定理,这个问题的答案应该与前面的例子相同。的分区 的 最大的部分如下所列:
和以前一样,有 分区的 的 是最大的部分。然而,有人可能会说,这个版本的问题更容易解决。与 作为最大的部分,有 分区。因此,答案是一样的 .
如果 ,然后
导致分区的第一部分总是 ,其余部分是整数的分区 .
当 , .因此,分区 在 将所有划分 .
因此, 当 .
上述定理适用于的划分 的 是最大的部分。这等价于分割 到完全 因此,上述定理也可以应用于这类问题。
有多少种划分方法 到完全 正整数吗?
这个问题的答案等于 ,分区数 的 是最大的部分。
,所以
,所以有 分区的方法 成 正整数。
将相同的对象放入相同的容器的基本情况
让 是分配给相同对象的数量 相同的垃圾箱。对于分布的数量,有几种相对简单的情况。这些在将来会很有用,因为递归将用于寻找更复杂问题的解决方案。
案例1:
每个箱子里没有足够的东西。因此,分布的数量为 .
案例2:
有完全 对象为每个容器。因此,只有 分布。
案例3:
有完全 对象,并 更多的物体有待放置。它被放入哪个箱子并不重要,所以有确切的 分布。
案例4:
只有一个容器可以存放对象,所以只有 分布。
例5:
如果 是奇数,那么分布的数目是 .如果 是偶数,那么分布的数目是多少 .
你想把987美元存入两个相同的储蓄账户。把钱分成两组有多少种方法?
假设货币是按美元总额分配的。可以将其建模为 相同的物体分布在 相同的垃圾箱。
的基本情况 可以使用。 是奇数,那么分布的数目是 .
因此,有 把钱分成两组的方法。
使用递归解决问题
当 和 变得足够大,找到分布的数量的问题 相同的对象 相同的容器可能令人生畏。幸运的是,有一种方法可以利用递归把问题分解成更简单的部分。下面的定理将是解决这些问题的关键。
当部分排序从大到小,每个分区计数 总是以整数开始 .分区中的其余整数本身就是的分区 .这些分区的 之间的最大整数是多少 和 、包容。因此, 等于所有的总和吗 ,在那里 是介于 和 、包容。
解决“将相同的对象放入相同的箱子”的策略是使用上述定理,以及本页上的所有其他定理和基本情况,以尽可能高效地得到一个解决方案。用几个步骤来解决问题并不总是可能的,但递归将使把一个复杂的问题分解成更简单的问题成为可能。
把12个相同的立方体分成3组有几种方法?每个组必须至少有一个立方体,组的顺序无关紧要。
这个问题可以被认为是发现 .利用上述定理,
根据基本情况4, .
根据基本情况5, .
现在我们可以用上面的定理来求 :
根据基本情况4, .
根据基本情况5, .
为 , .根据之前的定理, .
所以,
因此,有 将12个相同的立方体分成3组。
的值作为参考 为 下面列出。