Catalan卡塔蘭數

卡塔蘭數

  卡塔蘭數組合數學中一個常出現在各種計數問題中出現的數列。由以比利時的數學家歐仁·查理·卡塔蘭?(18141894)命名。

  卡塔蘭數的一般項公式為?C_n = \frac{1}{n+1}{2n \choose n} = \frac{(2n)!}{(n+1)!n!}?????????????????????

  另類遞歸式:? h(n)=((4*n-2)/(n+1))*h(n-1);

  前幾項為: 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020, 91482563640, 343059613650, 1289904147324, 4861946401452, ...

性質

  Cn的另一個表達形式為C_n = {2n\choose n} - {2n\choose n-1} \quad\mbox{ for }n\ge 1?

  所以,Cn是一個自然數;這一點在先前的通項公式中并不顯而易見。這個表達形式也是André對前一公式證明的基礎。(見下文的第二個證明。)

卡塔蘭數滿足以下遞推關系

C_0 = 1 \quad \mbox{and} \quad C_{n+1}=\sum_{i=0}^{n}C_i\,C_{n-i}\quad\mbox{for }n\ge 0.

它也滿足

C_0 = 1 \quad \mbox{and} \quad C_{n+1}=\frac{2(2n+1)}{n+2}C_n,

這提供了一個更快速的方法來計算卡塔蘭數。

卡塔蘭數的漸近增長為

C_n \sim \frac{4^n}{n^{3/2}\sqrt{\pi}}

它的含義是左式除以右式的商趨向于1當n?→?∞。(這可以用n!的斯特靈公式來證明。)

所有的奇卡塔蘭數Cn都滿足n?= 2k?? 1。所有其他的卡塔蘭數都是偶數。

應用

  組合數學中有非常多.的組合結構可以用卡塔蘭數來計數。在Richard P. Stanley的Enumerative Combinatorics: Volume 2一書的習題中包括了66個相異的可由卡塔蘭數表達的組合結構。以下用Cn=3和Cn=4舉若干例:

  • Cn表示長度2n的dyck word的個數。Dyck word是一個有n個X和n個Y組成的字串,且所有的部分字串皆滿足X的個數大于等于Y的個數。以下為長度為6的dyck words:
XXXYYY XYXXYY XYXYXY XXYYXY XXYXYY
  • 將上例的X換成左括號,Y換成右括號,Cn表示所有包含n組括號的合法運算式的個數:
((())) ()(()) ()()() (())() (()())
  • Cn表示有n+1個葉子的二叉樹的個數。

? ??

?

  • Cn表示所有不同構的含n個分枝結點的滿二叉樹的個數。(一個有根二叉樹是滿的當且僅當每個結點都有兩個子樹或沒有子樹。)

證明:

令1表示進棧,0表示出棧,則可轉化為求一個2n位、含n個1、n個0的二進制數,滿足從左往右掃描到任意一位時,經過的0數不多于1數。顯然含n個1、n個0的2n位二進制數共有{2n \choose n}個,下面考慮不滿足要求的數目.

考慮一個含n個1、n個0的2n位二進制數,掃描到第2m+1位上時有m+1個0和m個1(容易證明一定存在這樣的情況),則后面的0-1排列中必有n-m個1和n-m-1個0。將2m+2及其以后的部分0變成1、1變成0,則對應一個n+1個0和n-1個1的二進制數。反之亦然(相似的思路證明兩者一一對應)。

從而C_n = {2n \choose n} - {2n \choose n + 1} = \frac{1}{n+1}{2n \choose n}。證畢。

  • Cn表示所有在n?×?n格點中不越過對角線的單調路徑的個數。一個單調路徑從格點左下角出發,在格點右上角結束,每一步均為向上或向右。計算這種路徑的個數等價于計算Dyck word的個數: X代表“向右”,Y代表“向上”。下圖為n?= 4的情況:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
  • Cn表示通過連結頂點而將n?+?2邊的凸多邊形分成三角形的方法個數。下圖中為n?= 4的情況:? ? ??
  • Cn表示對{1, ...,?n}依序進出置換個數。一個置換w是依序進出棧的當S(w) = (1, ...,?n), 其中S(w)遞歸定義如下:令w?=?unv,其中nw的最大元素,uv為更短的數列;再令S(w) =S(u)S(v)n,其中S為所有含一個元素的數列的單位元。
  • Cn表示集合{1, ...,?n}的不交叉劃分的個數. 那么,?Cn?永遠不大于第n貝爾數.?Cn也表示集合{1, ..., 2n}的不交叉劃分的個數,其中每個段落的長度為2。綜合這兩個結論,可以用數學歸納法證明 that all of the?free?cumulants of degree more than 2 of the?Wigner semicircle law?are zero. This law is important in?free probability?theory and the theory of?random matrices.
  • Cn表示用n個長方形填充一個高度為n的階梯狀圖形的方法個數。下圖為?n?=?4的情況:

??????????????????????????????????????????????????????????????????????????????????????????



  我總結了一下,最典型的四類應用:(實質上卻都一樣,無非是遞歸等式的應用,就看你能不能分解問題寫出遞歸式了)
1.括號化問題。
  矩陣鏈乘:?P=a1×a2×a3×……×an,依據乘法結合律,不改變其順序,只用括號表示成對的乘積,試問有幾種括號化的方案?(h(n)種)
2.出棧次序問題。
  一個棧(無窮大)的進棧序列為1,2,3,..n,有多少個不同的出棧序列?
  類似:
  (1)有2n個人排成一行進入劇場。入場費5元。其中只有n個人有一張5元鈔票,另外n人只有10元鈔票,劇院無其它鈔票,問有多少中方法使得只要有10元的人買票,售票處就有5元的鈔票找零?(將持5元者到達視作將5元入棧,持10元者到達視作使棧中某5元出棧)
  (2)在圓上選擇2n個點,將這些點成對連接起來,使得所得到的n條線段不相交的方法數。
3.將多邊行劃分為三角形問題。
  將一個凸多邊形區域分成三角形區域的方法數?
  類似:一位大城市的律師在她住所以北n個街區和以東n個街區處工作。每天她走2n個街區去上班。如果她
  從不穿越(但可以碰到)從家到辦公室的對角線,那么有多少條可能的道路?
  類似:在圓上選擇2n個點,將這些點成對連接起來使得所得到的n條線段不相交的方法數?
4.給頂節點組成二叉樹的問題。
  給定N個節點,能構成多少種形狀不同的二叉樹?
  (一定是二叉樹!
  先去一個點作為頂點,然后左邊依次可以取0至N-1個相對應的,右邊是N-1到0個,兩兩配對相乘,就是h(0)*h(n-1)?+?h(2)*h(n-2)?+??+?h(n-1)h(0)=h(n))
  (能構成h(N)個)

轉載于:https://www.cnblogs.com/yxh-amysear/p/8260440.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/251154.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/251154.shtml
英文地址,請注明出處:http://en.pswp.cn/news/251154.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vue --- v-html、v-bind

v-html // 有時候,我們需要展示<strong>,但直接使用下面的語法并不會顯示 <div id "app">{{name}}</div><script>let app new Vue({el:#app,data:{name:<strong>啦啦啦</strong>}}); </scritp> // 結果當然沒讓人失望此…

在樹莓派是安裝并配置NTP服務

我們都知道樹莓派的小巧和省電節省空間等太多的優勢&#xff0c;這里就不一一列舉了&#xff0c;那么樹莓派就需要長時間的運行&#xff0c;可以724的方式運行&#xff0c;那么我們就把樹莓派當作一個小的服務器來運行&#xff0c;可以跑一些小的應用&#xff0c;例如可以在局域…

Oracle使用總結

1. 在ORACLE中Service Name即為數據庫名稱&#xff1b; 2. 在做刪除操作時&#xff0c;需要加Commit進行操作提交&#xff1b; 3. 使用sqlldr將數據進行批量導入到ORACLE中&#xff1a; 3.1 Sqlldr命令的用法&#xff1a; sqlldr useridLoginName/PasswordTNSName controlC:\U…

ES5-17/18 錯誤信息、try_catch、嚴格模式

錯誤信息 語法錯誤 標識符名稱&#xff08;變量、函數名&#xff09;不規范對關鍵字賦值基本語法錯誤&#xff0c;如分號打錯 引用錯誤 變量、函數未聲明給無法賦值的對象賦值var a 1 2 范圍錯誤 數組長度為負數方法參數超出可行范圍toFixed(-1) 類型錯誤 調用不存在…

vue --- v-text、v-show、v-if、v-else

v-text: <div id "app"><p v-text"msg"></p> </div> <script>let app new Vue({el:#app,data:{msg:Hello Vue}}) </script>// 可見v-text在某種程度上等價于 {{}}v-show: <div id "app"><div…

查找mac下騰訊視頻下載地址

mac 騰訊視頻下載的視頻是不可見的&#xff0c;也許是因為版權原因吧。使用以下方法可以在文件中找到緩存的視頻&#xff08;不過都是被斷開的很多短視頻&#xff09;。 在terminal輸入&#xff1a; cd Library/Containers/ 然后ls查看。查看當前的所有文件夾&#xff0c;你會看…

JS 新建web sql 數據表

//新建web sql數據庫數據表var tbName"tableName";var strSQL"create table if not exists tableName (id unique,th1,th2,th3)";function creatBDTable(strSQL,tbName){db openDB();db.transaction(function(tr) {tr.executeSql(strSQL,[],//SQL語句出成…

vue --- v-for、v-on、v-model、v-once

v-for: <div id "app"><ul><li v-for"item in list">{{item}}</li></ul> </div> <script>let app new Vue({el:#app,data:{list:[B,A,T]}}) </script>拿到索引index: <div id"app">&…

ES5-19 變量聲命周期、垃圾回收原理、arguments

變量聲命周期 垃圾回收 找出不再使用的變量釋放其占用內存固定的時間間隔運行 解除由于閉包產生的對fn AO的引用 標記清除 排除全局變量、排除閉包引用的AO中的變量進入環境 → 離開環境常用 引用計數 引用計數為0時清除對循環引用的情況&#xff0c;如果不手動接觸引用…

bzoj 1801: [Ahoi2009]chess 中國象棋【dp】

注意到一行只能放012個炮&#xff0c;我們只需要知道列的狀態&#xff0c;不用狀壓行 所以設f[i][j][k]表示前i行有j列有1個炮&#xff0c;有k列有2個炮的方案數 然后分情況討論轉移就行了 #include<cstdio> #include<iostream> using namespace std; const int N1…

vue --- compoent妙用

首先利用寫一個靜態模板的組件 <div id "app"><my-arti></my-arti> </div> <script>Vue.component(my-arti,{template:<div style"border:1px solid black"><span>date:2019年06月14日</span><br>…

ES5-20 復習

3-1 變量單一聲明方式String Boolean undefined Number nullundefined nulltypeof(null) ‘object’typeof(方法) ‘function’typeof() 是運算符&#xff0c;不是數據類型 報錯0 -0 trueInfinity -Infinity falseNaN和誰都不等原始值沒有屬性 要打印屬性、調用方法得經過基…

eclipse中去掉警告提示

有時候我們要去掉這些不必要的提示 下面我們來設置去掉這些警告提示 轉載于:https://www.cnblogs.com/xiaostudy/p/9370016.html

vue --- vue-router

vue-router的CDN <script src "https://unpkg.com/vue-router2.5.3/dist/vue-router.js"></script>// 當然還需要導入vue的cdn <script src"https://cdn.jsdelivr.net/vue/2.1.3/vue.js"></script>使用router-link(to)添加點擊鏈…

django-restframework使用

安裝restframework: pip install djangorestframework 修改項目settings.py: INSTALLED_APPS [django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,rest_framework, ]修改項…

JSON基礎與數據解析、JSON方法、AJAX初識

JSON JavaScript Object Notation js對象標記是對象&#xff0c;是輕量級數據交互的格式&#xff0c;不能有方法它基于 JavaScript 語法&#xff0c;但與之不同&#xff1a;JavaScript不是JSON&#xff0c;JSON也不是JavaScript映射用:隔開并列數據用,隔開映射的集合用{}包裹鍵…

iOS開發經驗總結

在iOS開發中經常需要使用的或不常用的知識點的總結&#xff0c;幾年的收藏和積累&#xff08;踩過的坑&#xff09;。 一、 iPhone Size 二、 給navigation Bar 設置 title 顏色 123UIColor *whiteColor [UIColor whiteColor];NSDictionary *dic [NSDictionary dictionaryWit…

http --- 緩存

Web緩存: // 是可以自動保存常見文檔副本的HTTP設備. // 當Web請求抵達緩存時,如果本地有"已緩存的"副本,就可以從本地存儲設備而不是原始服務器中提取這個文檔.冗余的數據傳輸: // 有很多客戶端訪問一個流行的原始服務器頁面時,服務器會多次傳輸同一份文檔 // 每次…

Django 下添加左側字段顯示和搜索

在對應的apps下建立xadmin.py from .models import EmailVerifyRecord import xadminclass EmailVerifyRecordAdmin(object): list_display [code,email,send_type,send_time]//字段顯示 search_fields [code,email,send_type]//搜索 xadmin.site.register(EmailVerify…

免費分享老男孩全棧9期視頻,共126天

免費分享老男孩全棧9期視頻&#xff0c;共126天。 及時保存避免失效&#xff1a;http://mihon.cn/article/26.html/ 轉載于:https://www.cnblogs.com/mihon/p/9372881.html