可重組合與不相鄰組合

2021-08-16 18:44:42 字數 1043 閱讀 6763

可重組合:

①a = ,從集合a中選出5個元素,可以重複,問有多少種不同的組合,例如就算做一種

②有r個完全相同的小球,n個不同的盒子,每個盒子可以放任意數量的球,也可以不放,問有多少種方案

③線性方程x1+x2+…+xn=r的非負整數解的個數

①答案為c(8, 5),②③答案為c(n+r-1, r)

即在n個不同元素裡取r個進行組合,允許重複的組合數為c(n+r-1, r)

不相鄰組合:

從a = 中取m個不相鄰的數進行組合,情況個數為c(n-m+1, m)

字典序法:例如數字839647521

①從右往左找到乙個下降的數字,例子中為4

②找字尾中比4大的最小的數,並和4交換:839647521 → 839657421

③翻轉字尾,完成:839657421 → 839651247

在由m個0,n個1組成的字串中,出現01或10的總次數為k的字串,有多少個?("010"中出現01or10總次數為2)

答案:

證明:當k為偶數時

①我們先假設兩端一定是0,那麼可以將所有的0排成一排:0-0-0-…-0-0,中間的-代表空隙。選擇中間的k/2個位子放上1,就會生成剛好k個01or10,情況數c(m-1, k/2),還剩下n-k/2個1,剛好就是n-k/2個球放在k/2個不同盒子裡,根據可重組合公式,情況個數為c(n-1,k/2-1),總情況為c(n-1, k/2-1)*c(m-1,k/2)

②當然還有可能兩端都是1,那麼可已將所有的1排成一排:1-1-1-…-1-1,你會發現計算方法和上面完全一樣,所以總情況數為對稱的(m-1, k/2-1)*c(n-1,k/2)

③那有沒有可能一端是0一端是1呢?是不可能的,因為這個時候兩端只會有一端對答案貢獻1,而中間的貢獻一定為偶數

綜上,k為偶數時情況數為c(n-1, k/2-1)*c(m-1,k/2)+c(m-1, k/2-1)*c(n-1,k/2)得證

不相鄰的組合個數

a 中選取m m個不相鄰的組合個數,即不存在兩個數j和j 1的組合。例如,n 4 m 2 n 4,m 2 有組合,a 中取mm 個不相鄰組合,其組合數為cmn m 1 cn m 1m。b 是一組不相鄰的組合,假設b 1 b1,令c1 b1,c 2 b2 1,c 3 b3 2,cm bm m 1 n ...

計數的方法 可重組合和全排列

圓排列 圓排列就是圍成乙個圓。圓旋轉一下是同乙個排列。因此 從n個中取r個的圓排列的排列數為 p n,r r 這是因為r個中間有r個空隙,沿著r個空隙剪開可以分別得到r中排列。項鍊排列 項鍊排列和圓排列不同的地方是項鍊是立體的,可以翻過來,是同一種排列 因此,項鍊排列的公式是p n,r 2r 可重排...

組合關係與組合模式

物件a包含物件b,物件b離開物件a沒有實際意義。是一種更強的關聯關係。人包含手,手離開人的軀體就失去了它應有的作用。場景 window窗體由滑動條slider 頭部header 和工作區panel組合而成。將物件組合成樹形結構以表示 部分 整體 的層次結構。組合模式使得使用者對單個物件和組合物件的使...