Skip to content

排列与组合的模板总结 ​

TIP

本页总结了第二章常用的公式和问题模板

环形排座 ​

可以看作 n 元素的循环 n 排列,要在线性排列的基础上除以 n 去除轮换对称的重复项。

P(n,n)n

n 元素集合循环 r 排列 ​

P(n,r)r

多重集合排排列 ​

多重集合{n1⋅a1,n2⋅a2,⋯,nk⋅ak}, 集合大小n=n1+n2+⋯+nk,使用乘法原理化简,得到排序个数公式。

n!n1!n2!⋯nk!

分组问题 ​

把 n 个对象放到 k 个盒子中,盒子可能有标签(也可能没有标签)。

组有区别 ​

可以从每一组选择对象加入考虑,本质上就是多重集合排序。

n!n1!n2!⋯nk!

组无区别 ​

转化为平均分组问题。

n!k!⋅n1!n2!⋯nk!

配对问题 ​

可以把配对问题转化为组无区别的分组问题。

棋盘问题 ​

先从大棋盘中选出小棋盘,然后逐行考虑放在哪一列,最后考虑哪些列染什么色。

(nm)(nm)×m!×(mr)

多重集合组合 ​

多重集合{∞⋅a1,∞⋅a2,⋯,∞⋅ak},该多重集合的 r 组合个数为

(r+k−1k−1)=(r+k−1r)

方程非负整数解 ​

x1+x2+⋯+xk=r,xi≥0

非负整数解的个数为(r+k−1r)。

不相邻的物品 ​

有 r 个物品,从中选择 k 个不相邻的物品。

该问题可以转化为把 r-k 个物品划分为 k+1 个部分。