• <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)用:(實質(zhì)上卻都一樣,無非是遞歸等式的應(yīng)用,就看你能不能分解問題寫出遞歸式了)
            1.括號化問題。

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

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

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

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

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

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

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

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

            Catalan numbers

            posted on 2006-11-06 16:39 哈哈 閱讀(3937) 評論(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 | 江水獸
            順便說一下啊

            你的瀏覽計數(shù)器太大了 影響頁面訪問和美觀 呵呵呵 隨便提個建議  回復(fù)  更多評論
              
            # re: catalan數(shù)在數(shù)據(jù)結(jié)構(gòu)中的應(yīng)用 2006-11-10 13:11 | pengkuny
            @江水獸
            c代表組合數(shù),即2n-2個體種選取n-1個的種類  回復(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個人排成一行進(jìn)入劇場。入場費5元。其中只有n個人有一張5元鈔票,另外n人只有10元鈔票,劇院無其它鈔票,問有多少中方法使得只要有10元的人買票,售票處就有5元的鈔票找零?(將持5元者到達(dá)視作將5元入棧,持10元者到達(dá)視作使棧中某5元出棧)”這個問題;

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

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

            不符合要求的數(shù)的特征是由左而右掃描時,必然在某一奇數(shù)位2m+1位上首先出現(xiàn)m+1個0的累計數(shù)和m個1的累計數(shù),此后的2(n-m)-1位上有n-m個1和n-m-1個0。如若把后面這2(n-m)-1位上的0和1互換,使之成為n-m個0和n-m-1個1,結(jié)果得1個由n+1個0和n-1個1組成的2n位數(shù),即一個不合要求的數(shù)對應(yīng)于一個由n+1個0和n-1個1組成的排列。
            反過來,任何一個由n+1個0和n-1個1組成的2n位二進(jìn)制數(shù),由于0的個數(shù)多2個,2n為偶數(shù),故必在某一個奇數(shù)位上出現(xiàn)0的累計數(shù)超過1的累計數(shù)。同樣在后面部分0和1互換,使之成為由n個0和n個1組成的2n位數(shù),即n+1個0和n-1個1組成的2n位數(shù)必對應(yīng)一個不符合要求的數(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都不太清楚,可不可以說明白一點?

            比如
            3.將多邊行劃分為三角形問題。
            將一個凸多邊形區(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個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個節(jié)點可構(gòu)成幾棵不同形態(tài)的二叉樹,可以這么考慮:
            因為只有一個根節(jié)點,而且二叉樹只有左孩子或右孩子,所以可知:
            當(dāng)左孩子有0個節(jié)點時,右孩子有n-1個節(jié)點,可構(gòu)成的不同形態(tài)二叉樹的數(shù)目為:
            h(0)*h(n-1)
            當(dāng)左孩子有1個節(jié)點時,右孩子有n-2個節(jié)點,可構(gòu)成的不同形態(tài)二叉樹的數(shù)目為:
            h(1)*h(n-2)
            當(dāng)左孩子有2個節(jié)點時,右孩子有n-3個節(jié)點,可構(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)容有錯誤,別人又來復(fù)制,導(dǎo)致錯誤的事情擴大,可悲。。。  回復(fù)  更多評論
              

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            精品久久久久久无码中文野结衣| 久久久久亚洲AV无码麻豆| 欧美亚洲另类久久综合婷婷| 久久精品国产一区| 久久亚洲天堂| 久久精品无码一区二区无码 | 亚洲а∨天堂久久精品| 久久婷婷五月综合色奶水99啪| 中文字幕亚洲综合久久| 大香伊人久久精品一区二区| 精品熟女少妇a∨免费久久| 久久毛片免费看一区二区三区| 少妇人妻88久久中文字幕| 久久亚洲中文字幕精品一区| 国内精品久久久久影院优| 天堂无码久久综合东京热| 91久久精品91久久性色| 久久这里只有精品首页| 久久99精品久久久久久秒播| 国产午夜精品久久久久免费视 | 久久一区二区免费播放| 国产成人久久精品区一区二区| 国产激情久久久久久熟女老人| 国内精品久久久久久麻豆 | 亚洲精品97久久中文字幕无码| 伊人久久大香线蕉精品| 久久精品这里热有精品| 99久久精品国产高清一区二区| 性高湖久久久久久久久| 久久久久亚洲AV无码观看| 亚洲乱码日产精品a级毛片久久| 国产午夜精品久久久久九九电影| 免费观看久久精彩视频| 久久99精品综合国产首页| 久久综合狠狠色综合伊人| 欧美精品一区二区精品久久| 99热热久久这里只有精品68| 99久久成人18免费网站| 久久精品国产亚洲一区二区三区| 狠狠久久综合| 四虎国产精品成人免费久久|