可重排列

Posted hit_yjl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可重排列相关的知识,希望对你有一定的参考价值。

问题描述:将x个相同的物品分成y坨(允许空坨,考虑坨的顺序),方案总数为C(x + y - 1, x)。

百度了一下发现这个东西叫可重排列。现在会两种证明方法。

(1)相当于把x个物品和y - 1个隔板这x + y - 1个元素随机排列,那么排完后每一种排列都实际上都是一种分配方案,所以答案为C(x + y - 1, y - 1)。

(2)相当于求a1 + a2 + ... + ay = x有多少组解(ai >= 0)。另bi = ai + 1, ci = sum(bj, 1, i)(即bj从第一项到第i项的和)。

等价于b1 + b2 + ... + by = x + y,因c1 < c2 < ... < cy = x + y,故考虑ci的取法,(因cy已知)便是在x + y - 1个数中取出y - 1个不同数的方案。亦即C(x + y - 1, y - 1)。

以上是关于可重排列的主要内容,如果未能解决你的问题,请参考以下文章

全排列(next_permutation)

输出 可重叠元素数组的从小到大排列

MANIFEST.MF文件对Import-Package/Export-Package重排列

python 按列重排文件

数组重排序方法

CF1526D结论/树状数组/逆序对性质