获取排序组合数的算法?

Jee*_*tha 4 algorithm combinations sorted

假设有"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} .......由于所有这些组合都已排序,因此它们是有效的.我们怎样才能找到我们可以得到的这种分类组合数量


我从排序的话,意思是说,当我们选择p从元素组数字ñ元素,所选择的p元素应该进行排序.

举一个小例子:

如果集合是{1,2,3,4}(所以n = 4)并且我们要选择3个元素(p = 3),那么我们可以选择p个元素(替换)的方式的数量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}{3,1,1}没有排序.

我想获得排序选择的数量.
谢谢.

BiG*_*YaN 6

我没有看到排序如何影响结果.对于每个可能的重复组合,将存在相应的排序排列.

因此,问题归结为一次采用p替换的n个元素的组合数.这是直截了当的公式,(n-1 + p)C(p)=阶乘(n-1 + p)/(阶乘(p)*阶乘(n-1))

在此输入图像描述

这是对公式解释,另一个来自wolfram.