Algorithm 查找可能的选择数的算法

Algorithm 查找可能的选择数的算法,algorithm,combinatorics,Algorithm,Combinatorics,有人问我这个问题,我想了很多,但没能解决 问题是: 我被要求选择n支彩色铅笔。有k种不同颜色的铅笔。每个颜色组中也有无限多支铅笔。我希望每个颜色组至少有一支铅笔,但仍然有很多选择的可能性 对于这组选择,一个人可以有多少种可能性? 假设同一颜色的铅笔无法区分,并且铅笔的顺序是不相关的。我们假设n>k,否则您无法实现“每种颜色至少一种” 然后,您的第一个k选择被完全定义,每种颜色一个。剩下的就是(n-k)铅笔,它可以是任何颜色。这就是第一个k选项,第二个k选项 换句话说:k^(n-k)想象n个插槽之

有人问我这个问题,我想了很多,但没能解决

问题是:

我被要求选择n支彩色铅笔。有k种不同颜色的铅笔。每个颜色组中也有无限多支铅笔。我希望每个颜色组至少有一支铅笔,但仍然有很多选择的可能性

对于这组选择,一个人可以有多少种可能性?
假设同一颜色的铅笔无法区分,并且铅笔的顺序是不相关的。

我们假设n>k,否则您无法实现“每种颜色至少一种”

然后,您的第一个k选择被完全定义,每种颜色一个。剩下的就是(n-k)铅笔,它可以是任何颜色。这就是第一个k选项,第二个k选项


换句话说:k^(n-k)

想象n个插槽之间有n-1个空格。将k-1分隔符放入插槽之间的空间(每个插槽最多1个分隔符)可确定有效选择:将第一种颜色放入第一个分隔符之前的所有插槽中,将第二种颜色放入第一个和第二个分隔符之后的插槽中,等等。因为每两个分隔符之间至少有一个空间,每种颜色至少有一支铅笔

映射是一对一的,因为每个选择也会生成一个唯一的分隔符配置

将k-1分隔符放入n-1空间可以用n(n-1,k-1)的方式完成,其中n是牛顿符号,因此答案是n(n-1,k-1)

另一种表达方式,基于djna回答:

固定k支铅笔,每种颜色一支——每种颜色至少需要一支,这样可以确保满足这一要求。现在剩下n-k个选项,您可以按照自己的意愿在不同颜色之间进行分割,这一次不必关心选择每种颜色(这是由首先选择的k支铅笔确定的)。解决方案的数量是可以将n-k支不可区分铅笔分割成k个可区分(*)分区的方法的数量

如何列举?在你的n-k铅笔上加上k-1笔,把它们排成一行,从左到右涂色,遇到铅笔后改变颜色。例如,将钢笔表示为
*
,将铅笔表示为
-
,使用三种颜色(红色、绿色、蓝色)表示:

表示两支红色铅笔,零绿色和一支蓝色。在这种表示法中,有(n-k)+(k-1)=n-1个元素(笔和铅笔)。从这些元素中,您需要选择k-1笔位置(或n-k笔位置,因为选择一个集合决定另一个集合)。您可以选择的方法是n(n-1,k-1)


(*)我假设“2红,1绿”与“2绿,1红”不同,否则是一项完全不同的任务。

这可能更适合。@abat您不能将问题移动到测试站点。单击“关闭”链接,选择“主题外”,您可以看到问题可以迁移到的站点。@Space\u C0wb0y:这是基本的组合数学,因此math.stackexchange.com更适合。在您的答案中,铅笔的顺序是相关的,但不可以,但不仅有
n
铅笔,还需要选择
n
。铅笔组是无限的。这里的顺序是不相关的,但你的回答没有考虑到这一点。我打赌他忘了提到他将随机挑选:)我不太能够理解解决方案。你能用另一种方式解释吗?哪一部分需要解释?牛顿符号,分隔符和选择的关系,分隔符和选择的关系。。。Thanx添加了一种不同的表示结果的方法。
--**-