排列組合 ——插隔板
排列組合
——插隔板
I.n個相同小球分成m部分,每部分可以沒有球。
在n+(m-1)個數中選擇(m-1)次數作為隔板,其它的數作為小球。Count=C(n+m-1,m-1)。
II.n個相同的小球分成m部分,每部分至少有1個小球。
每個在相鄰小球的中間,有n-1個隔板,從n-1個隔板中選取m-1個隔板,從而分成m部分。
Count=C(n-1,m-1)。
也可以認為:是提前從每部分提取1個小球,n個小球變為n-m個小球。可看成是把n-m個小球分成m部分,每部分可以沒有球;然後把1個小球加入每部分,使每部分至少有一個球。
Count=C((n-m)+m-1,m-1)=C(n-1,m-1)
III. n個相同的小球分成m部分,每部分至少有k個小球。
與2同理,提前從每部分提取k個小球,n個小球變為n-m*k個小球。可看成是把n-m*k個小球分成m部分,每部分可以沒有球;然後把k個小球加入每部分,使每部分至少有k個球。
Count=C((n-m*k)+m-1,m-1)=C(n-m*(k-1)-1,m-1)
當k=1,即變為情況II
IV.有n個座位依次從左到右排列,m個人選擇座位,無其它要求。
第1個人有n種選擇,第2個人有n-1種選擇,……,第m個人有n-m+1中選擇。
Count=P(n,m)
V. 有n個座位依次從左到右排列,m個人選擇座位,任意兩個人不能相鄰。
把m個(人+座位)插入n-m個空座位的左右兩旁,第1個人有n-m+1種選擇,第2個人有n-m種選擇,……,第m個人有n-m+1-(m-1)中選擇。
也可以認為:提前提取m-1個座位,n個座位變為n-m+1個座位。可看成有n-m+1個座位依次從左到右排列,m個人選擇座位,無其它要求;然後把1個座位加入所有相鄰(指的不是座位相鄰,而是指一個人向左/向右看第一個看到的人)的兩個人的中間(m-1個座位),使任意兩個人能相鄰。
Count=P(n-m+1,m)
VI. 有n個座位依次從左到右排列,m個人選擇座位,任意兩個人之間至少有k個空位。
提前提取(m-1)*k個座位,n個座位變為n-(m-1)*k個座位。可看成有n-(m-1)*k個座位依次從左到右排列,m個人選擇座位,無其它要求; 然後把k個座位加入所有相鄰(指的不是座位相鄰,而是指一個人向左/向右看第一個看到的人)的兩個人的中間((m-1)*k個座位),使任意兩個人之間至少有k個空位。
Count=P(n-(m-1)*k,m)
當k=1,即變為情況V
VII.有n個座位形成圓圈,m個人選擇座位,無其它要求。
第1個人有n種選擇,第2個人有n-1種選擇,……,第m個人有n-m+1中選擇。如果不考慮圓的位置編號,則一個狀態順時針旋轉k位(k=0,1,…,n-1),狀態都相同,結果在原來基礎上除以n。
考慮圓的位置編號:P(n,m)
不考慮圓的位置編號:P(n,m)/n
證明P(n,m)/n是正數:
n-k必能整除(n,k)【括號指的是兩個數的最大公約數】,若(n,k)<>1, n能被數k(1<=k<=n)所約分【即n=n/(n,k)】,那麽n能用n-k代替【即(n-k)= (n-k)/(n,k)】,最終(n,m)必是n的倍數。
VIII.有n個座位形成圓圈,m個人選擇座位,任意兩個人不能相鄰。
To
考慮圓的位置編號:
定義一個人A所坐的座位編號為1,然後座位編號按照順時針的方向從1到n遞增,編號為n的座位與編號為1的座位連接起來。
在編號為1的座位的和編號為n的座位中間切一刀,變成編號為1,2,…,n的一排座位。其中第n個位置不能坐人,第2個位置不能坐人,因為任意兩個人不能相鄰,而第1個位置座位有人坐。
題目轉變成n-3個座位,依次從左到右排列,m-1個人選擇座位,任意兩個人不能相鄰。
Count1=P(n‘-m‘+1,m‘)=P((n-3)-(m-1)+1,m-1)=P(n-m-1,m-1)
而A的編號可以為1,2,…,n,
Count2=n*P(n-m-1,m-1)
不考慮圓的位置編號:
即不考慮什麽人坐編號為多少的位置,只考慮人之間的相對關系,如一個人的左邊/右邊是誰
m個人的位置順時針旋轉k位(k=0,1,2,…,n-1)【即第1個人的位置變為原來第(1+k)個人的位置,第2個人的位置變為第(2+k)個人的位置,依次類推】,有m種方案,但這裏只看成1種方案,所以要除以m
Count3=n*P(n-m-1,m-1)/m
IX.有n個座位形成圓圈,m個人選擇座位,任意兩個人之間至少有k個空位。
考慮圓的位置編號:
定義一個人A所坐的座位編號為1,然後座位編號按照順時針的方向從1到n遞增,編號為n的座位與編號為1的座位連接起來。
在編號為1的座位的和編號為n的座位中間切一刀,變成編號為1,2,…,n的一排座位。其中第n個~第n-k+1個位置不能坐人,第2個~第k+1位置不能坐人,因為任意兩個人之間至少有k個空位,而第1個位置座位有人坐。
題目轉變成n-k*2-1個座位,依次從左到右排列,m-1個人選擇座位,任意兩個人之間至少有k個空位。
Count=P(n‘-(m‘-1)*k,m‘)=P((n-k*2-1)-((m-1)-1)*k,m-1)=P(n-m*k-1,m-1)
而A的編號可以為1,2,…,n,
Count2=n*P(n-m*k-1,m-1)
不考慮圓的位置編號:
即不考慮什麽人坐編號為多少的位置,只考慮人之間的相對關系,如一個人的左邊/右邊是誰
m個人的位置順時針旋轉k位(k=0,1,2,…,n-1)【即第1個人的位置變為原來第(1+k)個人的位置,第2個人的位置變為第(2+k)個人的位置,依次類推】,有m種方案,但這裏只看成1種方案,所以要除以m
Count3=n*P(n-m*k-1,m-1)/m
當k=1,即變為情況VIII。
排列組合 ——插隔板