設事件a有m種產生方式,事件b有n種產生方式,則事件a或b之一有m+n種產生方式。
集合論語言:若 |a| = m , |b| = n , a∩b = φ, 則 |aub| = m + n 。
《例》
(1)某班選修企業管理的有 18 人,不選的有 10 人,則該班共有 18 + 10 = 28 人。
(2)北京每天直達上海的客車有 5 次,客機有 3 次, 則每天由北京直達上海的旅行方式有 5 + 3 = 8 種。
設事件a有m種產生式,事件b有n種產生方式,則事件a與b有 m · n種產生方式。
集合論語言:若 |a| = m , |b| = n , a*b = , 則 |a * b| = m * n 。
《例》
(1) 某種字串由兩個字元組成,第乙個字元可選自,第二個字元可選自,則這種字串共有5 * 3 = 15 個。
(2) 從a到b有三條道路,從b到c有兩條道路,則從a經b到c有3 * 2=6 條道路。
(3*)a.求小於10000的含1的正整數的個數
分析:小於10000的不含1的正整數可看做4位數,但0000除外.
故有9×9×9×9-1=6560個.
含1的有:9999-6560=3439個
b.求小於10000的含0的正整數的個數
分析:
不含0的1位數有9個,2位數有9*9 個,3位數有9^3 個,4位數有9^4 個
不含0小於10000的正整數有9+9^2+9^3+9^4 =7380個
含0小於10000的正整數有9999-7380=2619個
定義:從n個不同的元素中,取r個不重複的元素,按次序排列,稱為從n個中取r個的無重排列。當r=n時稱為全排列。一般不說可重即無重。可重排列的相應記號為p(n,r) 。
排列:從n個中取r個的排列的典型例子是從n個不同的球中,取出r個,放入r個不同的盒子裡,每盒1個。第1個盒子有n種選擇,第2個有n-1種選擇,······,第r個有n-r+1種選擇。故有p(n,r)=n(n-1)······(n-r+1)。
組合:從n個中取r個的組合的典型例子是從n個不同的球中,取出r個,放入r個相同的盒子裡。每個盒子要放乙個球。每一種組合方案都可以衍生出r!種排列方案來。c(n,r)=p(n,r)/r!。
性質1:c(n,0)=c(n,n)
性質2:c(n,k)=c(n,n-k)
性質3:c(n,k)+c(n,k+1)=c(n+1,k+1)
二項式定理:
《例》
1.有重複元素的全排列
有k種元素,其中第i種元素有ni個,所有元素一共是n個。求全排列的個數.
解:設元素的總數為n。它同一類元素被重複計算了ni!次.所以答案為:n!/(n1!*n2!*…nk!)
2.可重複選擇的組合
有n個不同的元素,每個元素可以選多次,一共選擇k個元素,有多少種方法?
如n=3,k=2,有6種選擇:(1,1),(1,2),(1,3),(2,2),(2,3),(3,3)
分析:設第乙個元素選擇x1個,第二個元素選擇x2個,……,第n個元素選擇xn個。則有方程:x1+x2+……xn=k。問題轉換為求方程的非負整數解的個數。令yi=xi+1,則答案為y1+y2+…+yn=k+n的正整數解的個數。想想k+n個相同的小球拍成1列,現在要把它分成n個部分,則只需在其中放置n-1塊隔板即可。一共有k+n-1個位置用來放隔板,所以答案為c(n+k-1,n-1)
將乙個整數n拆成無序的k個數的和,問有多少種方法?
將n個相同的球全部放入k個相同的盒子,問有多少種方法?
p(n,k)=p(n-1,k-1)+p(n-k,k)
將乙個包含n個元素的集合拆成k個子集,每個子集非空,且子集之間無交集,問有多少種方法?
設s(n,k)表示解,則s(n,k)=s(n-1,k-1)+s(n-1,k)*k,其中s(n,n)=1,s(n,1)=1,若i將n個不同的小球全部放入k個相同的盒子,要求每個盒子都不為空。
將乙個包含n個元素的集合拆成有序的k個子集,每個子集非空,且子集之間無交集,問有多少種方法?
將n個不同的小球全部放入k個不同的盒子,要求每個盒子都不為空。
設s(n,k)表示集合n的無序分拆,則本題的答案為:
k!*s(n,k)
其中s(n,n)=1,s(n,1)=1,若i將乙個整數n拆成有序的k個數的和,問有多少種方法?
將n個相同的球全部放入k個不同的盒子,問有多少種方法?
將n個不同的數分成k個非空迴圈排列一共有多少種方法。
s1(n,k)=s1(n-1,k-1)+(n-1)*s1(n-1,k)
遞推關係的說明:
考慮第n個數,n可以單獨構成乙個非空迴圈排列,這樣前n-1種數構成k-1個非空迴圈排列,方法數為s1(n-1,k-1);
也可以前n-1種數構成k個非空迴圈排列,而第n個數插入第i個數的左邊,這有(n-1)*s1(n-1,k)種方法。
又名抽屜原理。有n個鴿籠,現在放入m只鴿子(m>n)則必有兩隻鴿子在乙個籠子。
如果被計數的事物有a、b、c三類,那麼,a類和b類和c類元素個數總和= a類元素個數+ b類元素個數+c類元素個數—既是a類又是b類的元素個數—既是a類又是c類的元素個數—既是b類又是c類的元素個數+既是a類又是b類而且是c類的元素個數。
(a∪b∪c = a+b+c - a∩b - b∩c - c∩a + a∩b∩c)
《公式》
組合數學 求組合數
對於求組合數,要根據所給資料範圍來選擇合適的演算法 這道題中所給的資料範圍適合用打表的方法直接暴力求解 先用4e6的複雜度預處理出所有的情況,再用1e4的複雜度完成詢問即可 include using namespace std const int n 2010 const int mod 1e9 ...
數學 組合數學
mod must be a prime const int mod 1e9 7 namespace combinatory ll inv ll x ll fac maxn invfac maxn void initc int n ll a ll n,ll m ll c ll n,ll m ll d ...
組合數學筆記
從n個數中選m個數,每個數至多選一次,方案數 性質 c n,0 c n,n 1 c n,m c n,n m c n,m c n 1,m 1 c n 1,m 楊輝三角 二項式展開 x y n i 0.n c n,i x iy n i 那這裡先說一下楊輝三角 前提 每行端點與結尾的數為1 每個數等於它上...