Python 語言第 n 個 Catalan 數
在本文中,我們將學習如何計算第 n 個 Catalan 數。
Catalan 數是自然數序列,由遞迴公式定義:−
$$C_{0}= 1\:and\:C_{n+1}=\displaystyle\sum\limits_{i=0}^n C_{i}C_{n-i} for \:n\geq0;$$
對於 n = 0, 1, 2, 3, …,前幾個 Catalan 數為1, 1, 2, 5, 14, 42, 132,429,...................
Catalan 數既可以透過遞迴獲得,也可以透過動態規劃獲得。下面讓我們看看它們的實現方式。
方法 1: 遞迴方法
示例
# A recursive solution def catalan(n): #negative value if n <=1 : return 1 # Catalan(n) = catalan(i)*catalan(n-i-1) res = 0 for i in range(n): res += catalan(i) * catalan(n-i-1) return res # main for i in range(6): print (catalan(i))
輸出
1 1 2 5 14 42
所有變數和遞迴呼叫的範圍如下所示。

方法 2:動態規劃方法
示例
# using dynamic programming def catalan(n): if (n == 0 or n == 1): return 1 # divide table catalan = [0 for i in range(n + 1)] # Initialization catalan[0] = 1 catalan[1] = 1 # recursion for i in range(2, n + 1): catalan[i] = 0 for j in range(i): catalan[i] = catalan[i] + catalan[j] * catalan[i-j-1] return catalan[n] # main for i in range (6): print (catalan(i),end=" ")
輸出
1 1 2 5 14 42
所有變數和遞迴呼叫的範圍如下所示。

結論
在本文中,我們瞭解了生成第 n 個 Catalan 數的方法。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP