假设有“n”数字,我们从中选择“p”数字(p小于n),以便选择“ p“数字已排序。可以重复选定的号码。我们如何计算我们可以选择的数量组合?例如,如果我们有一组数字说{1,2,3,4,5,6}(n = 6),我们将从集合中选择3个数字(p = 3)进行排序。所以我们可以{1,2,3},{1,1,2},{2,3,6},{4,5,5},{5,5,5} .......由于所有这些组合都已排序,因此它们是有效的。我们怎样才能找到这样的已排序组合的数量?
我从排序单词的意思是,当我们从 n 元素的数组中选择 p 元素时,选中 p 元素应该排序。
举一个小例子:
如果集合是{1,2,3,4}
(所以n = 4)并且我们要选择3个元素(p = 3),那么我们可以选择p个元素(替换)的方式将是{{1} }。所以选择将有4*4*4=64
。但在这些选择中,并非所有选择都已排序。在此示例中,{1,1,1},{1,1,2},{1,1,3}{1,1,4},{1,2,1}.....{3,1,1}...{4,4,4}
和{1,2,1}
未排序。
我想获得排序选择的数量 谢谢。
答案 0 :(得分:6)
我没有看到排序如何影响结果。对于每个可能的重复组合,都会有相应的排序排列。
因此,问题归结为一次采用p替换的n个元素的组合数。这是直截了当的公式,(n-1 + p)C(p)=阶乘(n-1 + p)/(阶乘(p)*阶乘(n-1))
答案 1 :(得分:2)
@ BiGYaN的答案here,是正确的,但缺乏获得此结果的旅程中的幽默(即使在提供的链接上),所以我决定添加这个 -
首先OP不应该采用集合的类比,因为根据定义,集合不考虑订单,而且包含唯一的项目。
如果我们采用相同的例子,其中n = 6或[1,2,3,4,5,6],现在我们得到长度为3的序列,这样 -
pattern = d1< = d2< = d3(d代表数字)。
我们需要序列如:{[1,1,1],[1,1,2],....,[2,2,3],[2,2,4],... }。 现在,对于这样的序列,从左侧扫描模式并尝试推断我们是否要增加数字。
对于ex:从d1的左边开始并且如果你想在这里增加d1的原因,如果你决定不这样做 - d1将是'1'并且现在向前移动在d2之前问同样的问题,如果你再次决定不起来,d2再次为'1'。
如果您决定将其提高5次以获得[6,6,6],则可以随时选择向上5次,因为范围是[1-6]而d1应该至少为6。
所以,问题就是选择适合5个人的地方
[up up up up up d1 d2 d3]
这可能是[向上d1向上向上d2 d3],产生[2,6,6],或 [d1向上向上d2向上d3],产生[1,4,5]或任何这样的组合。
所以,实际答案是 - C(5 up + 3 d's,5 up)或者, 更一般地说
C(n-1 up's + k digits, n-1 up's) or C(n-1+k, n-1)
其中,k个事物要按照排序的顺序选择。
答案 2 :(得分:1)
您可以从一组k
元素中选择替换n
元素的方式数量与您可以选择k
元素而无需替换元素的方式数相同n + k - 1
元素。后一个值是二项式系数n+k-1 choose k
,其值为(n+k-1)!/(k! (n-1)!)
非正式示范:
假设我有n个蓝框。我把它们排成一排(所以它们被分类),然后拿出k个红球。除了最后,我把红球放在我喜欢的任何地方,所以行必须以蓝色方框结束。现在,对于每个红色球,我选择以下蓝色框。如果两个或多个红球并排,则它们都对应于同一个蓝色框。
所以红球和蓝框的每一个排列都对应于一些选择,更换蓝框,每一个蓝框选择对应红球和蓝框的排列。
我可以用多少种方式安排红球和蓝盒子?我的行必须以蓝色框结束,所以我把那个拿走了,现在我可以用我选择的任何方式安排剩余的n-1个蓝色框和k个红色球。或者,换句话说,我可以选择k + n-1个位置的k,并将红球放在那些位置,用蓝色方框填充剩余的位置。