Catlan数
-
前 100 100 100 个 C a t l a n Catlan Catlan 数
string catalan[]= { "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", "18367353072152", "69533550916004", "263747951750360", "1002242216651368", "3814986502092304", "14544636039226909", "55534064877048198", "212336130412243110", "812944042149730764", "3116285494907301262", "11959798385860453492", "45950804324621742364", "176733862787006701400", "680425371729975800390", "2622127042276492108820", "10113918591637898134020", "39044429911904443959240", "150853479205085351660700", "583300119592996693088040", "2257117854077248073253720", "8740328711533173390046320", "33868773757191046886429490", "131327898242169365477991900", "509552245179617138054608572", "1978261657756160653623774456", "7684785670514316385230816156", "29869166945772625950142417512", "116157871455782434250553845880", "451959718027953471447609509424", "1759414616608818870992479875972", "6852456927844873497549658464312", "26700952856774851904245220912664", "104088460289122304033498318812080", "405944995127576985730643443367112", "1583850964596120042686772779038896", "6182127958584855650487080847216336", "24139737743045626825711458546273312", "94295850558771979787935384946380125", "368479169875816659479009042713546950", "1440418573150919668872489894243865350", "5632681584560312734993915705849145100", "22033725021956517463358552614056949950", "86218923998960285726185640663701108500", "337485502510215975556783793455058624700", "1321422108420282270489942177190229544600", "5175569924646105559418940193995065716350", "20276890389709399862928998568254641025700", "79463489365077377841208237632349268884500", "311496878311103321137536291518809134027240", "1221395654430378811828760722007962130791020", "4790408930363303911328386208394864461024520", "18793142726809884575211361279087545193250040", "73745243611532458459690151854647329239335600", "289450081175264899454283846029490767264392230", "1136359577947336271931632877004667456667613940", "4462290049988320482463241297506133183499654740", "17526585015616776834735140517915655636396234280", "68854441132780194707888052034668647142985206100", "270557451039395118028642463289168566420671280440", "1063353702922273835973036658043476458723103404520", "4180080073556524734514695828170907458428751314320", "16435314834665426797069144960762886143367590394940", "64633260585762914370496637486146181462681535261000", "254224158304000796523953440778841647086547372026600", "1000134600800354781929399250536541864362461089950800", "3935312233584004685417853572763349509774031680023800", "15487357822491889407128326963778343232013931127835600", "60960876535340415751462563580829648891969728907438000", "239993345518077005168915776623476723006280827488229600", "944973797977428207852605870454939596837230758234904050", "3721443204405954385563870541379246659709506697378694300", "14657929356129575437016877846657032761712954950899755100", "57743358069601357782187700608042856334020731624756611000", "227508830794229349661819540395688853956041682601541047340", "896519947090131496687170070074100632420837521538745909320" };
-
通项公式
- C n = C 2 n n n + 1 C_n = \displaystyle\frac{C_{2n}^{n}}{n+1} Cn=n+1C2nn
- C n = ( 2 n ) ! ( n + 1 ) ! n ! C_n = \displaystyle\frac{(2n)!}{(n+1)!n!} Cn=(n+1)!n!(2n)!
- C n = C 2 n n − C 2 n n + 1 C_n = C_{2n}^{n} - C_{2n}^{n+1} Cn=C2nn−C2nn+1
- C n + 1 = ∑ i = 0 n C i C n − i C_{n+1} = \sum_{i = 0}^{n}C_{i}C_{n - i} Cn+1=∑i=0nCiCn−i C 0 = 1 C_0 = 1 C0=1
- C n + 1 = 2 ( 2 n + 1 ) n + 2 C n C_{n + 1} = \displaystyle\frac{2(2n+1)}{n+2}C_n Cn+1=n+22(2n+1)Cn C 0 = 1 C_0 = 1 C0=1
- C n ∼ 4 n n 3 / 2 π 2 C_{n} \sim \displaystyle\frac{4^n}{n^{3/2}\sqrt[2]{\pi}} Cn∼n3/22π4n 渐进式
-
应用
-
n n n 个左括号和 n n n 个右括号组成得合法括号序列数量
-
1 , 2 , . . . , n 1,2,...,n 1,2,...,n 经过一个栈,形成的合法出栈序列的数量
-
n n n 个节点构成的不同二叉树的数量
-
坐标中只能向上,向右走,从 ( 0 , 0 ) ∼ ( n , n ) (0,0)\sim(n,n) (0,0)∼(n,n) 并且除两个端点外不接触直线 y = x y = x y=x 的路线数量
-
-
c a t l a n catlan catlan 数列的生成函数
证明:
C n + 1 = ∑ i = 0 n C i C n − i 生 成 函 数 相 乘 性 质 : ( ∑ 0 ≤ n f n x n ) ( ∑ 0 ≤ n g n x n ) = ∑ 0 ≤ n ( ∑ i = 0 n f n g n − i ) x n 又 因 为 : C n + 1 = ∑ i = 0 n C i C n − i ( ∑ 0 ≤ n c n x n ) ( ∑ 0 ≤ n c n x n ) = ∑ 0 ≤ n c n + 1 x n 设 F ( x ) 为 C n 序 列 的 生 成 函 数 F ( x ) = c 0 + c 1 x + c 2 x 2 . . . . F ( x ) 2 = c 1 + c 2 x + c 3 x 3 . . . = F ( x ) − c 0 x F ( x ) = x F ( x ) 2 + 1 解 得 : F ( x ) = 1 ± 1 − 4 x 2 2 x 因 为 由 二 项 式 定 理 得 1 − 4 x 2 展 开 为 负 数 所 以 只 能 取 1 − 1 − 4 x 2 所 以 数 列 得 生 成 函 数 为 : F ( x ) = 1 − 1 − 4 x 2 2 x \begin{aligned} & C_{n+1} = \sum_{i = 0}^{n}C_{i}C_{n - i} \\ 生成函数相乘性质:&\bigg(\sum_{0 \leq n} f_nx^n\bigg) \bigg(\sum_{0 \leq n} g_nx^n\bigg) = \sum_{0 \leq n} \bigg(\sum_{i = 0}^{n} f_ng_{n -i}\bigg)x^n \\ & 又因为:C_{n + 1} = \sum_{i = 0}^{n}C_{i}C_{n - i} \\ &\bigg(\sum_{0 \leq n} c_nx^n\bigg) \bigg(\sum_{0 \leq n} c_nx^n\bigg) = \sum_{0 \leq n} c_{n+1}x^n \\ &设F(x) 为C_{n}序列的生成函数\\ &F(x) = c_0 + c_1x+c_2x^2....\\ &F(x)^2 = c_1+c_2x+c_3x^3... = \frac{F(x) - c_0}{x} \\ &F(x) = xF(x)^2 + 1 \\ &解得:F(x) = \frac{1 \pm \sqrt[2]{1-4x}}{2x} 因为由二项式定理得 \sqrt[2]{1-4x} 展开为负数所以只能取 1 - \sqrt[2]{1-4x} \\ & 所以数列得生成函数为:F(x) = \frac{1 - \sqrt[2]{1-4x}}{2x} \end{aligned} 生成函数相乘性质:Cn+1=i=0∑nCiCn−i(0≤n∑fnxn)(0≤n∑gnxn)=0≤n∑(i=0∑nfngn−i)xn又因为:Cn+1=i=0∑nCiCn−i(0≤n∑cnxn)(0≤n∑cnxn)=0≤n∑cn+1xn设F(x)为Cn序列的生成函数F(x)=c0+c1x+c2x2....F(x)2=c1+c2x+c3x3...=xF(x)−c0F(x)=xF(x)2+1解得:F(x)=2x1±21−4x因为由二项式定理得21−4x展开为负数所以只能取1−21−4x所以数列得生成函数为:F(x)=2x1−21−4x -
计算
- 存在模数,且模数为素数 ( L u c a s Lucas Lucas取模)
- 存在模数,且模数不为素数(预处理素数,唯一分解定理)
-
参考资料:
BZOJ4001