介绍一些简单的概念和计数题
文章目录
生成函数概念
一般生成函数(OGF)
考虑一类组合对象组成的集合 A A A,对于集合中的每个元素 a a a定义其大小为 ∣ a ∣ |a| ∣a∣(非负整数),设大小为 n n n的元素个数为 A n A_n An(所有 A n A_n An都是有限的)。
定义
A = ∑ i = 0 ∞ A i x i A=\sum\limits_{i=0}^{\infty} A_ix^i A=i=0∑∞Aixi
为 A A A的一般生成函数。
指数生成函数(EGF)
对于带标号组合对象组成的集合 A,定义
A = ∑ i = 0 ∞ A i i ! x i A=\sum\limits_{i=0}^{\infty}\dfrac{A_i}{i!}x^i A=i=0∑∞i!Aixi
为 A A A的指数生成函数。
关系
拼接两个对象 a , b a,b a,b:
对于一般生成函数,方案唯一。
对于指数生成函数,由于集合中元素是带标号的, a , b a,b a,b拼接起来时只需保证拼接对象内部相对标号不变,方案数为 ( ∣ a ∣ + ∣ b ∣ ) ! ∣ a ∣ ! ∣ b ∣ ! \dfrac{(|a|+|b|)!}{|a|!|b|!} ∣a∣!∣b∣!(∣a∣+∣b∣)!
普通型生成函数解决的是组合问题,而指数型生成函数解决的是排列问题。
生成函数计数
生成序列与集合
生成序列:
s e q ( A ) = ∑ i = 0 ∞ A i = 1 1 − A seq(A)=\sum\limits_{i=0}^{\infty}A^i=\dfrac{1}{1-A} seq(A)=i=0∑∞Ai=1−A1
生成集合:
s e t ( A ) = ∑ i = 0 ∞ A i i ! = e A set(A)=\sum\limits_{i=0}^{\infty}\dfrac{A^i}{i!}=e^A set(A)=i=0∑∞i!Ai=eA
置换计数
k k k轮换有 ( k − 1 ) ! (k-1)! (