1.飯後,姐姐洗碗,妹妹把姐姐洗過的碗乙個乙個地放進碗櫥摞成一摞。一共有n個不同的碗,洗前也是摞成一摞的,也許因為小妹貪玩而使碗拿進碗櫥不及時,姐姐則把洗過的碗摞在旁邊,問:小妹摞起的碗有多少種可能的方式?
2.給定n個數,有多少種出棧序列?
3.乙個有n個1和n個-1組成的字串,且前k個數的和均不小於0,那這種字串的總數為多少?
這三個問題具有相同的結構,三個問題是可以互相轉化。將姐姐放碗看做入棧操作,將妹妹放碗看做出棧操作。則問題一變為問題二。將入棧操作記為1,出棧記為-1,問題2變為問題3。
問題的答案是乙個著名的數列,卡特蘭數。該問題的代數解法比較抽象,而運用到幾何上,用來描述,卻有讓人恍然大悟的感覺。
事實上,可以認為問題是,任意兩種操作,要求每種操作的總次數一樣,且進行第k次操作2前必須先進行至少k次操作1。我們假設乙個人在原點,操作1是此人沿右上角45°走乙個單位(乙個單位設為根號2,這樣他第一次進行操作1就剛好走到(1,1)點),操作2是此人沿右下角45°走乙個單位。第k次操作2前必須先進行至少k次操作1,就是說明所走出來的折線不能跨越x軸走到y=-1這條線上!在進行n次操作1和n此操作2後,此人必將到到達(2n,0)!若無跨越x軸的限制,折線的種數將為c(2n,n),即在2n次操作中選出n次作為操作1的方法數。
現在只要減去跨越了x軸的情況數。對於任意跨越x軸的情況,必有將與y=-1相交。找出第乙個與y=-1相交的點k,將k點以右的折線根據y=-1對稱(即操作1與操作2互換了)。可以發現終點最終都會從(2n,0)對稱到(2n,-2)。由於對稱總是能進行的,且是可逆的。我們可以得出所有跨越了x軸的折線總數是與從(0,0)到(2n,-2)的折線總數。而後者的操作2比操作1要多0-(-2)=2次。即操作1為n-1,操作2為n+1。總數為c(2n,n-1)。
計算公式
證明 卡特蘭數(折線法)
卡特蘭數能夠解決的問題類似出棧順序問題,對於乙個有兩種操作1,2 且1,2操作分別有n次的序列必須嚴格保證操作1的次數在任意前k k z 個操作中始終不小於操作2的次數,這種操作的方案數就是卡特蘭數c 2n,n n 1 我們可以用折線的方式去證明卡特蘭數 在笛卡爾座標系中,令x軸表示當前第幾次操作,...
卡特蘭數與折線法
問題舉例 元素1,2,3,4,5,6,7入棧,有多少種出棧的可能性?要點 卡特蘭數,折線法 這個問題分三種型別問,都是一樣的處理方法 解法 整個過程認為是從座標 0,0 走到 2n,0 入棧記為向右上方移動單位長度,出棧記為向右下方移動單位長度。棧內必須要有元素,不能為負值,所以,曲線不能在x軸下方...
卡特蘭數證明
1.飯後,姐姐洗碗,妹妹把姐姐洗過的碗乙個乙個地放進碗櫥摞成一摞。一共有n個不同的碗,洗前也是摞成一摞的,也許因為小妹貪玩而使碗拿進碗櫥不及時,姐姐則把洗過的碗摞在旁邊,問 小妹摞起的碗有多少種可能的方式?2.給定n個數,有多少種出棧序列?3.乙個有n個1和n個 1組成的字串,且前k個數的和均不小於...