一、前提:
• 構建乙個(s,x)序列,其中用 s 表示入棧,用 x 表示出棧,s和x個數相同為n。
• 顯然,在每個合理序列的任意字首子串行中,s(入棧)的個數總是大於等於x(出棧)的個數。
• 易得,對於乙個有n個s和n個x的2n序列,它的總序列數為 c(2n,n),包括合理序列和不合理序列。
• 那麼所要求的 合理序列數 = 總的序列數 - 不合理序列數。
二、推導:
三、總結:
由此,我們可以得出得出滿足卡特蘭數規律的有關排列問題特徵:
1.這個問題裡存在兩類事件(出棧、入棧 或 5元錢、10元錢 或 左括號、右括號 或 向右走、 向上走)
2.這兩類事件在排列時有先後順序
•出入棧問題:入棧個數總是大於等於出棧個數
• 5元10元找零問題:收5元錢的次數總是要大於等於收10元錢的次數,才能給給10元錢的人找錢
• n組括號的合法表示式問題:左括號的個數也總是要大於等於右括號的個數
• n × n格點中不越過對角線的單調路徑的個數問題:n個向上和向右,且向右的個數必須大於等於向上的個數,總的走法:cn,
卡特蘭數證明
1.飯後,姐姐洗碗,妹妹把姐姐洗過的碗乙個乙個地放進碗櫥摞成一摞。一共有n個不同的碗,洗前也是摞成一摞的,也許因為小妹貪玩而使碗拿進碗櫥不及時,姐姐則把洗過的碗摞在旁邊,問 小妹摞起的碗有多少種可能的方式?2.給定n個數,有多少種出棧序列?3.乙個有n個1和n個 1組成的字串,且前k個數的和均不小於...
證明 卡特蘭數(折線法)
卡特蘭數能夠解決的問題類似出棧順序問題,對於乙個有兩種操作1,2 且1,2操作分別有n次的序列必須嚴格保證操作1的次數在任意前k k z 個操作中始終不小於操作2的次數,這種操作的方案數就是卡特蘭數c 2n,n n 1 我們可以用折線的方式去證明卡特蘭數 在笛卡爾座標系中,令x軸表示當前第幾次操作,...
折線法 卡特蘭數證明
1.飯後,姐姐洗碗,妹妹把姐姐洗過的碗乙個乙個地放進碗櫥摞成一摞。一共有n個不同的碗,洗前也是摞成一摞的,也許因為小妹貪玩而使碗拿進碗櫥不及時,姐姐則把洗過的碗摞在旁邊,問 小妹摞起的碗有多少種可能的方式?2.給定n個數,有多少種出棧序列?3.乙個有n個1和n個 1組成的字串,且前k個數的和均不小於...