• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            什么是catalan數(shù)?
            在網(wǎng)上找了n久,各種關(guān)于catalan數(shù)列的資料都?xì)埲辈豢埃税胩觳爬斫馐裁词莄atalan數(shù)。所以干脆自己梳理一番。
            t_4acd74e802000azp.pngt_4acd74e802000azp.png
            原理:
            令h(1)=1,catalan數(shù)滿足遞歸式:
            h(n)= h(1)*h(n-1) + h(2)*h(n-2) + ... + h(n-1)h(1) (其中n>=2)
            該遞推關(guān)系的解為:h(n)=c(2n-2,n-1)/n (n=1,2,3,...)

            我并不關(guān)心其解是怎么求出來的,我只想知道怎么用catalan數(shù)分析問題。
            我總結(jié)了一下,最典型的三類應(yīng)用:(實(shí)質(zhì)上卻都一樣,無非是遞歸等式的應(yīng)用,就看你能不能分解問題寫出遞歸式了)
            1.括號(hào)化問題。

            矩陣鏈乘: P=a1×a2×a3×……×an,依據(jù)乘法結(jié)合律,不改變其順序,只用括號(hào)表示成對的乘積,試問有幾種括號(hào)化的方案?(h(n)種)

            2.出棧次序問題。
            一個(gè)棧(無窮大)的進(jìn)棧序列為1,2,3,..n,有多少個(gè)不同的出棧序列?

            類似:有2n個(gè)人排成一行進(jìn)入劇場。入場費(fèi)5元。其中只有n個(gè)人有一張5元鈔票,另外n人只有10元鈔票,劇院無其它鈔票,問有多少中方法使得只要有10元的人買票,售票處就有5元的鈔票找零?(將持5元者到達(dá)視作將5元入棧,持10元者到達(dá)視作使棧中某5元出棧)

            3.將多邊行劃分為三角形問題。
            將一個(gè)凸多邊形區(qū)域分成三角形區(qū)域的方法數(shù)?

            類似:一位大城市的律師在她住所以北n個(gè)街區(qū)和以東n個(gè)街區(qū)處工作。每天她走2n個(gè)街區(qū)去上班。如果他
            從不穿越(但可以碰到)從家到辦公室的對角線,那么有多少條可能的道路?

            類似:在圓上選擇2n個(gè)點(diǎn),將這些點(diǎn)成對連接起來使得所得到的n條線段不相交的方法數(shù)?

            不過下面這個(gè)問題似乎不好歸類,它怎么來應(yīng)用這個(gè)catalan遞歸方程呢?你說說:n個(gè)結(jié)點(diǎn)可構(gòu)造多少個(gè)不同的二叉樹?

            看的人倒是不少,愿意想一想的倒是不多,唉

            Catalan numbers

            posted on 2006-11-06 16:39 哈哈 閱讀(3927) 評論(16)  編輯 收藏 引用

            評論:
            # re: catalan數(shù)在數(shù)據(jù)結(jié)構(gòu)中的應(yīng)用 2006-11-10 12:56 | 江水獸
            h(n)=c(2n-2,n-1)/n 是什么意思哈 C代表什么呀  回復(fù)  更多評論
              
            # re: catalan數(shù)在數(shù)據(jù)結(jié)構(gòu)中的應(yīng)用 2006-11-10 12:57 | 江水獸
            順便說一下啊

            你的瀏覽計(jì)數(shù)器太大了 影響頁面訪問和美觀 呵呵呵 隨便提個(gè)建議  回復(fù)  更多評論
              
            # re: catalan數(shù)在數(shù)據(jù)結(jié)構(gòu)中的應(yīng)用 2006-11-10 13:11 | pengkuny
            @江水獸
            c代表組合數(shù),即2n-2個(gè)體種選取n-1個(gè)的種類  回復(fù)  更多評論
              
            # re: catalan數(shù)在數(shù)據(jù)結(jié)構(gòu)中的應(yīng)用 2006-11-10 13:12 | pengkuny
            @江水獸
            謝謝啊
            不過字體設(shè)置到最小后,還是這么大,let it be  回復(fù)  更多評論
              
            # re: catalan數(shù)在數(shù)據(jù)結(jié)構(gòu)中的應(yīng)用 2006-11-10 13:19 | 江水獸
            不過好像有些問題還不是那么好處理呵

            例如“有2n個(gè)人排成一行進(jìn)入劇場。入場費(fèi)5元。其中只有n個(gè)人有一張5元鈔票,另外n人只有10元鈔票,劇院無其它鈔票,問有多少中方法使得只要有10元的人買票,售票處就有5元的鈔票找零?(將持5元者到達(dá)視作將5元入棧,持10元者到達(dá)視作使棧中某5元出棧)”這個(gè)問題;

            到底該如何利用類推法呢?

            假如用f(x)來表示x個(gè)人時(shí)的情況,
            那么一個(gè)人時(shí)f(1)=1;
            兩個(gè)人時(shí)f(2)=2f(1)+1;
            三個(gè)人時(shí)f(3)=3f(1)+f(2)f(1)+f(1)f(2);
            四個(gè)人時(shí)f(4)=4f(1)+2f(3)f(1)+f(2)f(2)+f(1)f(2)f(1);
            ……
            這樣貌似還是有點(diǎn)不好處理呀……  回復(fù)  更多評論
              
            # re: catalan數(shù)在數(shù)據(jù)結(jié)構(gòu)中的應(yīng)用 2006-11-10 13:39 | pengkuny
            @江水獸
            你是說這么遞歸解這一堆遞歸式吧.
            大可不必,
            我們只需要發(fā)現(xiàn)一個(gè)問題滿足catalan數(shù)列的遞歸式,然后直接就可以得到解
            f(n)=h(n)=c(2n-2,n-1)/n
            有時(shí)候還要看具體問題,可能最終的解是h(n+1)或h(n-1)或h(2n)等等  回復(fù)  更多評論
              
            # re: catalan數(shù)在數(shù)據(jù)結(jié)構(gòu)中的應(yīng)用 2006-11-10 17:22 | 江水獸
            @pengkuny
            好像有道理喲 我再看看!  回復(fù)  更多評論
              
            # re: catalan數(shù)在數(shù)據(jù)結(jié)構(gòu)中的應(yīng)用[未登錄] 2007-05-16 12:40 | yiyi
            應(yīng)該是C(n)種吧
            C(n)=(2n)!/[n!*(n+1)!]  回復(fù)  更多評論
              
            # re: catalan數(shù)在數(shù)據(jù)結(jié)構(gòu)中的應(yīng)用[未登錄] 2007-05-16 12:42 | yiyi
            應(yīng)該是C(n)種吧
            C(n)=(2n)!/[n!*(n+1)!]  回復(fù)  更多評論
              
            # re: catalan數(shù)在數(shù)據(jù)結(jié)構(gòu)中的應(yīng)用 2007-05-30 11:44 | skyking
            我想知道catalan數(shù)是怎樣推導(dǎo)出來的呀
            怎樣用于算法的分析呀  回復(fù)  更多評論
              
            # re: catalan數(shù)在數(shù)據(jù)結(jié)構(gòu)中的應(yīng)用 2007-07-18 20:44 | Menie
            ding~~
            好文啊,這幾個(gè)都很典型!  回復(fù)  更多評論
              
            # re: catalan數(shù)在數(shù)據(jù)結(jié)構(gòu)中的應(yīng)用 2007-07-18 21:05 | Menie
            對于每一個(gè)數(shù)來說,必須進(jìn)棧一次、出棧一次。我們把進(jìn)棧設(shè)為狀態(tài)‘1’,出棧設(shè)為狀態(tài)‘0’。n個(gè)數(shù)的所有狀態(tài)對應(yīng)n個(gè)1和n個(gè)0組成的2n位二進(jìn)制數(shù)。由于等待入棧的操作數(shù)按照1‥n的順序排列、入棧的操作數(shù)b大于等于出棧的操作數(shù)a(a≤b),因此輸出序列的總數(shù)目=由左而右掃描由n個(gè)1和n個(gè)0組成的2n位二進(jìn)制數(shù),1的累計(jì)數(shù)不小于0的累計(jì)數(shù)的方案種數(shù)。
            在2n位二進(jìn)制數(shù)中填入n個(gè)1的方案數(shù)為c(2n,n),不填1的其余n位自動(dòng)填0。從中減去不符合要求(由左而右掃描,0的累計(jì)數(shù)大于1的累計(jì)數(shù))的方案數(shù)即為所求。

            不符合要求的數(shù)的特征是由左而右掃描時(shí),必然在某一奇數(shù)位2m+1位上首先出現(xiàn)m+1個(gè)0的累計(jì)數(shù)和m個(gè)1的累計(jì)數(shù),此后的2(n-m)-1位上有n-m個(gè)1和n-m-1個(gè)0。如若把后面這2(n-m)-1位上的0和1互換,使之成為n-m個(gè)0和n-m-1個(gè)1,結(jié)果得1個(gè)由n+1個(gè)0和n-1個(gè)1組成的2n位數(shù),即一個(gè)不合要求的數(shù)對應(yīng)于一個(gè)由n+1個(gè)0和n-1個(gè)1組成的排列。
            反過來,任何一個(gè)由n+1個(gè)0和n-1個(gè)1組成的2n位二進(jìn)制數(shù),由于0的個(gè)數(shù)多2個(gè),2n為偶數(shù),故必在某一個(gè)奇數(shù)位上出現(xiàn)0的累計(jì)數(shù)超過1的累計(jì)數(shù)。同樣在后面部分0和1互換,使之成為由n個(gè)0和n個(gè)1組成的2n位數(shù),即n+1個(gè)0和n-1個(gè)1組成的2n位數(shù)必對應(yīng)一個(gè)不符合要求的數(shù)。顯然,不符合要求的方案數(shù)為c(2n,n+1)。由此得出
            輸出序列的總數(shù)目=c(2n,n)-c(2n,n+1)=1/(n+1)*c(2n,n)。


            (form 日照NOIP夏令營,by 王建德老師)  回復(fù)  更多評論
              
            # re: catalan數(shù)在數(shù)據(jù)結(jié)構(gòu)中的應(yīng)用 2007-07-31 11:55 | etfl
            問題條件MS都不太清楚,可不可以說明白一點(diǎn)?

            比如
            3.將多邊行劃分為三角形問題。
            將一個(gè)凸多邊形區(qū)域分成三角形區(qū)域的方法數(shù)?

            劃分線是否可以相交?如果不可以相交那結(jié)果應(yīng)該是catalan數(shù),如果可以相交那就得另當(dāng)別論了。

            再問一句,為什么c(2n,n)-c(2n,n+1)=1/(n+1)*c(2n,n)?  回復(fù)  更多評論
              
            # re: catalan數(shù)在數(shù)據(jù)結(jié)構(gòu)中的應(yīng)用 2007-08-12 21:14 | binyun714
            輸出前n個(gè)catalan數(shù):
            program jk;
            const maxn=1000;
            type arraytype=array[0..maxn] of longint;
            var i,j,n:longint;

            procedure mul(var h:arraytype;k:longint);
            var i:longint;
            begin
            for i:=0 to maxn do h[i]:=h[i]*k;
            for i:=0 to maxn-1 do
            begin
            h[i+1]:=h[i+1]+h[i] div 10;
            h[i]:=h[i] mod 10
            end
            end;

            procedure devide(var h:arraytype;k:longint);
            var d,i,r:longint;
            begin
            r:=0;
            for i:=maxn downto 0 do
            begin
            d:=10*r+h[i];
            h[i]:=d div k;
            r:=d mod k
            end
            end;
            procedure cat(n:integer);
            var i,j:integer;
            h:arraytype;
            begin
            for i:=1 to maxn do h[i]:=0;
            h[0]:=1;
            for i:=3 to n-1 do
            begin
            mul(h,4*i-6);
            devide(h,i)
            end;
            i:=maxn;
            while (i>0) and (h[i]=0) do i:=i-1;
            for j:=i downto 0 do write(h[j]);
            writeln;
            end;

            begin
            assign(input,'input.dat');reset(input);
            assign(output,'output.dat');rewrite(output);
            readln(n);
            n:=n+2;
            for i:=1 to n do cat(i);
            close(input);close(output);
            end.
              回復(fù)  更多評論
              
            # re: catalan數(shù)在數(shù)據(jù)結(jié)構(gòu)中的應(yīng)用 2007-08-19 14:38 | 憂郁的魚
            對于有n個(gè)節(jié)點(diǎn)可構(gòu)成幾棵不同形態(tài)的二叉樹,可以這么考慮:
            因?yàn)橹挥幸粋€(gè)根節(jié)點(diǎn),而且二叉樹只有左孩子或右孩子,所以可知:
            當(dāng)左孩子有0個(gè)節(jié)點(diǎn)時(shí),右孩子有n-1個(gè)節(jié)點(diǎn),可構(gòu)成的不同形態(tài)二叉樹的數(shù)目為:
            h(0)*h(n-1)
            當(dāng)左孩子有1個(gè)節(jié)點(diǎn)時(shí),右孩子有n-2個(gè)節(jié)點(diǎn),可構(gòu)成的不同形態(tài)二叉樹的數(shù)目為:
            h(1)*h(n-2)
            當(dāng)左孩子有2個(gè)節(jié)點(diǎn)時(shí),右孩子有n-3個(gè)節(jié)點(diǎn),可構(gòu)成的不同形態(tài)二叉樹的數(shù)目為:
            h(2)*h(n-3)
            依次類推:
            可知共有不同形態(tài)二叉樹的數(shù)目為:
            h(0)*h(n-1)+h(1)*h(n-2)+h(2)*h(n-3)...+h(n-1)*h(0)
            注:h(0)=1,h(1)=1,h(2)=2 h(3)=5  回復(fù)  更多評論
              
            # re: catalan數(shù)在數(shù)據(jù)結(jié)構(gòu)中的應(yīng)用[未登錄] 2009-06-07 10:31 | wolf
            內(nèi)容有錯(cuò)誤,別人又來復(fù)制,導(dǎo)致錯(cuò)誤的事情擴(kuò)大,可悲。。。  回復(fù)  更多評論
              
            久久久久无码中| 99久久久国产精品免费无卡顿| 国内精品久久久久影院网站| 国产国产成人久久精品| 久久久无码精品午夜| 国产亚洲美女精品久久久2020| 伊人久久大香线蕉av一区| 久久久久成人精品无码中文字幕| 91久久精品无码一区二区毛片| 亚洲国产精品无码久久九九 | 日本精品久久久久中文字幕| 国产毛片久久久久久国产毛片| 99久久综合国产精品免费| 国产精品久久久久国产A级| 色狠狠久久综合网| 91久久成人免费| www.久久99| 久久影院综合精品| 久久国产精品免费| 午夜天堂av天堂久久久| 一本色道久久88加勒比—综合| 看全色黄大色大片免费久久久| 伊人伊成久久人综合网777| 996久久国产精品线观看| 色婷婷狠狠久久综合五月| 久久久久久亚洲精品成人| 久久久精品波多野结衣| 久久天天躁狠狠躁夜夜96流白浆| 精品久久久久久国产牛牛app| 精品伊人久久久| 99精品久久久久久久婷婷| 怡红院日本一道日本久久| 久久综合亚洲色HEZYO社区| 久久91精品国产91久久麻豆| 国产69精品久久久久观看软件| 久久青青草原国产精品免费 | 久久国产精品一区| 日产精品99久久久久久| 日韩美女18网站久久精品| 9999国产精品欧美久久久久久| 日本欧美久久久久免费播放网|