一,容斥原理
設s是乙個集合,ai 是s 中具有性質 pi 的元素組成的子集合。那麼,s中既不具有性質p1,也不具有性質p2,...更不具有性質pn 的元素個數為:
二,容斥原理計算 有限制的重組合問題
①什麼是有限制的重組合問題?(重組合就是,某個元素可重複選擇)
從集合中選取r個元素,(不考慮次序),一共有多少種組合?
元素,可以是乙個抽象的概念。一切問題,只要滿足這個「正規化」,就可以視為乙個重組合問題,從而用容斥原理求解。
從集合可以看出:b1
最多只能選取k1個,b2
最多只能選取k2個,...,bn 最多只能選取kn個
而在這篇文章的末尾提到了無限的重組合問題求解公式。因此,可以試著將有限制的重組合問題轉化為無限制的重組合問題(但是附加了一些條件)。
解法如下:
首先考慮問題1:在無限制的重組合問題的 集合中選取 r 個元素時,一共有多少種選取方法?----答案是一共有f(n,r)種。
然後再定義: 性質a1 表示 問題1得到的選取方案中 至少要存在 k1+1 個b1
性質a2 表示 問題1得到的選取方案中 至少要存在 k2+1 個b2
.....
性質an 表示 問題1得到的選取方案中 至少要存在 kn+1 個bn
從而,問題:從集合中選取r個元素,(不考慮次序),一共有多少種組合?
轉化成了:從集合中選取r個元素,(不考慮次序),並且b1不超過k1 b2不超過k2,bn不超過kn
,一共有多少種組合?
因此,有限制的重組合問題就轉化成了無限制的重組合問題,但是附加了條件:b1不超過k1 ,b2不超過k2,bn不超過kn
用數學公式表示就是:|a¯1 ∩ a¯2
∩....a¯n|
a¯1表示不具有a1性質的集合(即a1的非)
根據容斥原理:|a¯1 ∩ a¯2
∩....a¯n|就可以計算出來了。
三,容斥原理計算錯排問題
錯排問題就是:給定n個數1,2,3...n 要求第 i 個數不在 第 i 個位置上,一共有多少種排列?
性質a1表示第 1 個數恰好在 1 位置上
性質a2表示第 2 個數恰好在 2 位置上
.....
性質an表示第 n 個數恰好在 n 位置上
錯排問題就可以表示成公式:|a¯1 ∩ a¯2
∩....a¯n| ,
就可以用「容斥原理」來計算了。
四,棋盤多項式
是一種更複雜度的錯排問題。
比如,給定乙個4行4列的矩陣,元素1不能放在第1行第2列;元素2不能放在第4行第3列;元素3不能放在第1行第3列。求這三個元素一共有多少種放置方式?
五,母函式
母函式有兩種:普通的母函式 和 指數母函式。普通母函式一般用來解決組合問題,指數母函式用來解決排列問題。
不管是排列問題,還是組合問題。都是從 n 個數中選出若干個數。排列問題關注的是:是把選出的數做排列(考慮順序),組合問題則是不考慮順序。
①普通母函式
(1+x)(1+x)...(1+x)(1+x)=(1+x)n 這個公式表示了:一共有n個物品,每個物品要麼不選,要麼選中(每個物品最多只能選一次)。
對於每一項(1+x),1 表示不選,x表示選中。一共有 n 個(1+x),即表示一共有 n 個物品。
那麼從 n 個物品中選取 r個一共有多少種選擇?(不考慮順序--預設是組合問題)
將(1+x)(1+x)...(1+x)(1+x)
乘出來,得到1,2...n的多項式。xr 的係數就是:n 個物品中選取 r個的 總共的選取方法數。
由二項式定理:(1+x)n = c(n,0)x0 yn + c(n,1)x1 yn-1 +.....+ c(n,n)xn y0 = c(n,0)x0 + c(n,1)x1 +.....+ c(n,n)xn
(其中y=1)
可以看出 xr 的係數為c(n,r),剛好符合。
普通,對這種簡單的組合問題,用普通母函式計算太複雜了。普通母函式合適的是更複雜一些的組合問題。
如,有 n 個物品,每個物品最多可選兩次,從中選取 r 個有多少種選擇方案?母函式為:
(1+x+x2)(1+x+x2).....(1+x+x2) = (1+x+x2)n
選擇方案數為
(1+x+x2)(1+x+x2).....(1+x+x2) = (1+x+x2)n
的 xr 的係數。
再比如,有 n 個物品,每個只能選奇數次,母函式如下:
(x+x3+...x2k-1)(x+x3+...x2k-1).....(x+x3+...x2k-1)
= (x+x3+...x2k-1)n
......
再比如,有4 個物品,第1個物品最多只能選 2次,第二個物品只能選奇數次,第三個物品只能選偶數次,第四個物品最多只能選取3次。從中選取 r 個物品,一共有多少種選擇方案?(組合問題)
普通母函式如下:(1+x+x2)(x+x3+...x2k-1)
(1+x2+...x2k)(1+x+x2+x3)
將上面的母函式解出來,xr 的係數就是選擇的方案的數目。
②指數母函式
指數母函式的用法與普通母函式的用法一致。只不過是「表示形式」不同而已。
(1+x+x2+x3)在普通母函式中 表示某個物品在組合計數中 可選0次,1次,2次,3次【或者說該物品最多可選3次】
那指數母函式中選擇某個物品該如何表示呢?
(1+x+x2/2!+x3/3!+...+xk/k!)就表示:某個物品在排列計數中 可選0次,1次,2次....k次【或者說該物品最多可選k次】
如,有 n 個物品,每個物品最多可選兩次,從中選取 r 個有多少種選擇方案?母函式為:
(1+x+x2/2!
)(1+x+x2/2!
).....(1+x+x2/2!
) = (1+x+x2/2!
)n
選擇方案數為
(1+x+x2/2!)(1+x+x2/2!).....(1+x+x2/2!) = (1+x+x2/2!)n
的 xr 的係數。
再比如,有4 個物品,第1個物品最多只能選 2次,第二個物品只能選奇數次,第三個物品只能選偶數次,第四個物品最多只能選取3次。從中選取 r 個物品,一共有多少種選擇方案?(排列問題)
指數母函式如下:(1+x+x2/2!
)[(x+x3/3!+...x2k-1/(2k-1)!
)][(1+x2/2!+...x2k/(2k)!](1+x+x2/2!+x3/3!)
排列的方案數就是指數母函式解出來,xr的係數
六,整數拆分
給定乙個整數 n,將 n 拆分成 1,2,3 的和,一共有多少種拆分方式?
比如:n=4。 4=1+1+1+1;4=1+1+2;4=2+2;4=1+3
故一共有4種拆分方式。
考慮(1-x)-1 = (1+x+x2+...+xn),根據上面的普通母函式可知:「某個物品可選0次,1次,2次.....n次」 (1*[0,1,2,...n])
比如:x3 就表示數字1選取了3次,x2表示數字1選取了2次....
考慮(1-x2)-1 = (1+x2+x4+...+x2n),根據上面的普通母函式可知:「某個物品可選0次,2次,4次.....2n次」 (2*[0,1,2,...n])
比如:x6就表示數字2選取了3次,x4表示數字2選取了2次....
考慮(1-x3)-1 = (1+x2+x4+...+x2n),根據上面的普通母函式可知:「某個物品可選0次,3次,6次.....3n次」(3*[0,1,2,...n])
比如:x6就表示數字3選取了2次,x3表示數字3選取了1次....
因此,整數 n 拆分成1,2,3之和的方式數為:
)-1 的xn 的係數就是整數 n 拆分成 1,2,3 之和的方式數。(也就是說 n 只能由 1,2,3 相加得到,但是1,2,3,可以出現多次)
定理:給定乙個整數 n ,將 n 拆分成 a ,b ,c ...和的方法數是:
七,一些常用的泰勒展開式
(1-x)-1 = 1+x2+x3+....+xn+...
ex=1+x+x2/2!+x3/3!+...+xn/n!+....
八,參考資料
排列與組合的一些定理
排列組合問題的一些整理
加法原理是分類計數原理,常用於排列組合中,具體是指 做一件事情,完成它有n類方式,第一類方式有m1種方法,第二類方式有m2種方法,第n類方式有mn種方法,那麼完成這件事情共有m1 m2 mn種方法。做一件事,完成它需要分成n個步驟,做第一 步有m1種不同的方法,做第二步有m2種不同的方法,做第n步有...
一些簡單的排列組合問題
排列及計算公式 從n個不同元素中,任取m m n 個元素按照一定的順序排成一列,叫做從n個不同元素中取出m個元素的乙個排列 從n個不同元素中取出m m n 個元素的所有排列的個數,叫做從n個不同元素中取出m個元素的排列數,用符號 a n,m 表示或 p n,m 表示。a n,m n n 1 n 2 ...
一些數學定理
貝葉斯公式 圓周率 const double pi 4.0 atan 1.0 指數 曾經有人問愛因斯坦,世界上什麼事情最可怕?愛因斯坦說 複利最可怕 複利就是將本金按一定利息存入銀行,到期將利息計入本金繼續存入銀行,本利不斷增加。如果本金為a,年利息率為x,n年後可以從銀行取出的錢為a 1 x n。...