日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Catalan数列

發布時間:2023/12/10 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Catalan数列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引入

    今天聽學長講了卡特蘭數列后對其有了更深的認識,在此完善了一下之前的博客加以總結。

    首先用一個經典的例子來描述一下Catalan數列,我們有一個1~n的數列和一個大小為n的棧,我們有如下兩種操作:

  • 當未入棧序列不為空時,使序列的第一個元素入棧。
  • 當棧不為空時,使棧頂元素出棧。
  •     我們可以顯然地發現,如果我們選擇操作的順序不同,我們最后所形成的出棧序列也不相同,那么有多少種出棧序列呢?

      

        而這個數列中的C(n),就是我們所定義的Catalan數列。

        如果我們把所有每一次的操作都寫出來,可以得到一個關于1和2的操作序列,這個序列有以下性質:

  • 共有2n項且n項為1,n項為2。
  • 從左往右1的個數永遠不少于2的個數。
  • ?

    定義

    ?

    通項公式

      

    通項公式推導

      方法1:數學方法,摘自某大老的PPT,表示不是很了解,在此向各位大佬請教。


    ?

    ?


    ?

    ?


    ?

    ?(注意他證明過程中的初值是

    ?

    ?


      方法2:組合數證明法

    ?

      我們設定一個情景:假設一個點從A(0,0)出發走到B(n,n),我們定義兩種走的方法:

  • 往右走。
  • 往上走。
  •   我們從A走到B,一共要走2n步,其中n步為1,n步為2,這樣我們從A走到B的方案也就可以轉化為一個1和2的序列了,而所有的1和2的序列構成的排列,即為從A走到B的方案數:

      相較之于引言中所提到的序列,要使通過這種情景生成的序列是滿足Catalan的數列的方案序列,我們需要的充要條件是從左往右1的個數永遠比2的個數少(即向上走過的次數不少于向右走過的次數),即所走的路徑只存在于紫線的上部,而這個條件等價于所形成的路徑與綠線沒有交點。我們已經知道了所有的方案數,我們只需要求出不滿足條件的方案數就可以了。

      舉出一個反例(紅線)我們把這條線與綠線的第一個交點之后的部分都關于綠線對稱得到藍線部分,加上前面的部分與之形成的路徑構成了一條從A(0,0)走向C(n+1,n-1)的路徑,我們可以發現這樣的藍線有以下三條性質:

  • 藍線只向上走和向右走,且重點為C(n+1,n-1)。
  • 對于每一條符合性質1的藍色路徑都有且只有一條不合法的紅色路徑與之對應。
  • 對于每一條不合法的紅色路徑有且只有一條滿足性質1的藍色路徑與之對應。
  •   由此,我們可以發現不合法的紅色路徑與滿足上述性質的藍色路徑一一對應,所以不合法路徑數就是藍色路徑數,為

      所以,所有合法的路徑數為:,即Catalan的第n個數為

    推論

      • n個左括號和n個右括號組成的合法括號序列的數量為Cat(n)。
      • 1,2,···,n經過一個棧,形成的合法出棧序列的數量為Cat(n)。
      • n個結點構成的不同二叉樹的數量為Cat(n)。
      • 在平面直角坐標系上每一步只能向右或向上走,從(0,0)走到(n,n)并且除兩個端點外不接觸直線 y = x的路線數量為Cat(n)。
        • 推廣:在平面直角坐標系上,每一步只能向右或上走一步,從(0,0)走到(n,m)(n ≥m)并且除兩個點外不接觸直線 y = x 的路線的數量為

    轉載于:https://www.cnblogs.com/2020pengxiyue/p/9291476.html

    總結

    以上是生活随笔為你收集整理的Catalan数列的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。