5個0,4個1組成的字符串中,出現01或10的次數為4的不同字符串個數


題:(1)5個0,4個1組成的字符串中,出現01或10的次數為4的不同字符串個數

(2)一般地,n個0,m個1組成的字符串中,出現01或10的次數為k的不同字符串個數

例如,10100011是一個滿足要求的字符串(這里10和01是可以重用的,例如,010算是出現1次01,出現1次10)

(這是剛剛考過的組合數學期末試題,表示沒能當場做出,選錯方法了- -我用了遞推法,寫出了遞歸式但是不會解,因為有n、m、k三個參數——這也許不是正確的方法)

----------------------

符號說明:

1)N01和N10分別表示字符串中01的個數和10的個數

2)N=N01+N10表示字符串中01和10的總出現次數

3)C(n,m)表示n個不同元素中取m個元素的組合數

----------------------

(1)注意到:我們可以把字符串中連續的0用1個0替換而不改變N01和N10的個數(N01和N10分別表示字符串中01的個數和10的個數),同理也可以把字符串中連續的1用1個1替換,為敘述方便,稱得到的為原字符串的“模式”

比如,10100011的模式是10101

下面考慮有幾種可能的模式呢?

思路:我們考慮0的可能位置(考慮1也可以),如果0在左端,則對N01的貢獻為1;若在右端,則對N10的貢獻為1;若在中間(非端點),則對N10和N01的貢獻各為1,總貢獻為2

01或10出現次數為4,那么0在模式中出現的情況有以下幾種可能:

(1)中間沒有0——這不可能,因為即使兩端都出現0,01或10出現總次數也只有2

(2)中間有1個0——這1個0對N的貢獻為2,那么兩端必然都必須為0,這樣才會有N=4。模式為01010

(3)中間有2個0——這2個0對N的貢獻為4,兩端必然都必須為1,模式為10101

(4)中間有超過2個0——這不可能

總結起來只有兩種可能的模式:01010和10101

(還可以從模式的角度找規律,其實長為n的模式只有兩種,分別是以0開頭的01交替序列和以1開頭的01交替序列,而且這兩個模式對應的N是相同的,即包含01和10的總數是相同的。因此n和N之間構成了一一對應。n為偶數時,模式為0101…01或1010…10,對應N=n-1;n為奇數時,模式為0101…010或1010…101,對應N=n-1.所以總是有N=n-1,所以你告訴我N=4,那么對應的一定是長為5的兩個模式,這種方法似乎更簡單)

找到模式之后,怎么計算對應的字符串有多少個呢?

對模式01010,設“01010”的第1個0在原字符串代表x1個0,第2個0代表x2個0,第3個0代表x3個0,則有x1+x2+x3=5,不同的x1,x2,x3的取值對應的字符串是不同的,同樣每個符合模式01010的字符串也都對應了這樣一組正整數(x1,x2,x3),這是一一對應。求出這個不定方程的正整數解的個數就可以了,即為在5個相同的球之間插入2個隔板的方法數,是C(4,2)。同樣設“01010”的第1個1和第2個1在原字符串中分別代表y1個1和y2個1,有y1+y2=4,正整數解個數為C(3,1)

因此,由乘法原則,這種模式對應的字符串有C(4,2)* C(3,1)=18個

類似可以求出10101對應的字符串有C(4,1)* C(3,2)=12個

所以,有30個滿足要求的字符串。

(2)一般情況,方法是一樣的

n個0,m個1,出現01或10的次數為k

k為偶數時,可能的模式有兩個:

一個是1010…01,其中有k/2個0, k/2+1個1.對應的不定方程為:

X1+ X2+ …+Xk/2=n

y1+ y2+ …+yk/2+1=m

解的個數是C(n-1,k/2-1)*C(m-1,k/2)

另一個是010…010,其中有k/2+1個0, k/2個1.對應的不定方程為:

X1+ X2+ …+Xk/2+1=n

y1+ y2+ …+yk/2=m

解的個數是C(n-1,k/2)*C(m-1,k/2-1)

總的符合要求的字符串數為C(n-1,k/2-1)*C(m-1,k/2)+ C(n-1,k/2)*C(m-1,k/2-1)

 

k為奇數時,可能的模式也有兩個:

一個是010…01,其中有(k+1)/2個0, (k+1)/2個1.對應的不定方程為:

X1+ X2+ …+X(k+1)/2=n

y1+ y2+ …+y(k+1)/2=m

解的個數是C(n-1,(k-1)/2)*C(m-1, (k-1)/2)

另一個是10…010,其中同樣是有(k+1)/2個0, (k+1)/2個1.對應的不定方程及解的個數和上一個一樣,也是C(n-1,(k-1)/2)*C(m-1, (k-1)/2)個解。

總的符合要求的字符串數為2*C(n-1,(k-1)/2)*C(m-1, (k-1)/2)

--

ps:1樓給出了另一種思路,往下看


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM