组合数学——二项式反演

liu_jiangwen

反演概述

  反演方法是一种求解序列的方法,这种方法可以把一个序列用另一个序列表示出来。
  粗略来说,就是根据两个序列 { f ( n ) } { g ( n ) } 所满足的特殊关系,给出它们的相互表示方法。
  具体来说,为了得到某个组合计数问题的解,我们首先求出相应序列 f ( n ) 所满足的(累计)关系式

(1.1) r = 1 n c n , r f ( r ) = g ( n )

其中, g ( n ) 是已知序列,然后从中解出
(1.2) r = 1 n d n , r g ( r ) = f ( n )

( 1 ) ( 2 ) 两式互为反演公式。

  • 互逆公式:若由公式 A 可推出公式 B ,由公式 B 也能推出公式 A ,则称公式 A B 互逆。
  • 反演公式:如果公式 A B 互逆,则称命题“公式 A 成立当且仅当公式 B 成立”是反演公式。
  • 反演技巧:为了求 a n = | A n | ,引进 b n = | B n | ,其中 b n 是易求的或者已知的。先建立 b n { a k } 的表达公式 A ,然后应用反演公式,得到公式 B ,此公式是用 { b k } 表示 a n 的公式,从而求出 a n

第一反演公式

定理(第一反演公式):设 n 是一个自然数,多项式序列 { p n } { q n } (其中 p n , q n 均为 n 次多项式)有下列关系

(2.1) p n ( x ) = k = 0 n α n k q k ( x ) , q n ( x ) = k = 0 n β n k p k ( x )

α i i 0 , β i i 0 ,则
(2.2) v n = k = 0 n α n k u k u n = k = 0 n β n k v k

证明:令
p = ( p 0 , p 1 , . . . , p n ) T , q = ( q 0 , q 1 , . . . , q n ) T
u = ( u 0 , u 1 , . . . , u n ) T , v = ( v 0 , v 1 , . . . , v n ) T
将已知条件以矩阵显示表示为
[ p 0 p 1 p n ] = [ α 00 0 0 α 10 α 11 0 α n 0 α n 1 α n n ] [ q 0 q 1 q n ] p = A q [ q 0 q 1 q n ] = [ β 00 0 0 β 10 β 11 0 0 β n 0 β n 1 β n n ] [ p 0 p 1 p n ] q = B p

于是, p = A q = A B p .由于p是线性空间 R [ x ] 的一组基,所以 A B = I ,于是 A 1 = B 所以 v = A u u = A 1 v = B v


二项式反演公式

定理(二项式反演公式): 假设有两个序列 { a n } , { b n } ,则

(3.1) a n = k = 0 n ( n k ) b k b n = k = 0 n ( 1 ) n k ( n k ) a k

定理证明:
(3.2) x n = ( 1 + x 1 ) n = k = 0 n ( n k ) ( x 1 ) k
(3.3) ( x 1 ) n = k = 0 n ( 1 ) n k ( n k ) x k
( 3.2 ) ( 3.3 ) 以及第一反演公式即可得到二项式反演公式 ( 3.1 )
例(错排问题):在 n 个数字形成的 n ! 个排列中,满足 a i i 的排列有多少个?
  解决这一问题有以下三种方法
  1. 可以通过建立递推关系 D n = ( n 1 ) ( D n 1 + D n 2 )
  2. 利用容斥原理
  3. 利用二项式反演公式
  利用二项式反演公式主要过程如下:
  记 D i 为恰好有 i 个数字不在原来的位置上的排列的数目,则有 n ! = k = 0 n ( n k ) D k ,由二项式反演公式,可以得到 D n = k = 0 n ( 1 ) n k ( n k ) n ! = n ! r = 0 n ( 1 ) r 1 r !

猜你喜欢

转载自blog.csdn.net/liu_jiangwen/article/details/80740056