Skip to content

排列与组合的模板总结

TIP

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

环形排座

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

P(n,n)n

n 元素集合循环 r 排列

P(n,r)r

多重集合排排列

多重集合{n1a1,n2a2,,nkak}, 集合大小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+k1k1)=(r+k1r)

方程非负整数解

x1+x2++xk=r,xi0

非负整数解的个数为(r+k1r)

不相邻的物品

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

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