Go Lang 中的第 N 个加泰罗尼亚数字
加泰罗尼亚数是自然数序列,它给出了可能有n个值的BST(二叉搜索树)的数量。所以,加泰罗尼亚数是一棵有n+1片叶子的全二叉树。
加泰罗尼亚数的一些应用是计算嵌套括号对、有效山脉等。
对于n=5,C=(C(0)*C(4))+(C(1)*C(3))+(C(2)*C(2))+(C(3)*C(1))+(C(4)*C(0))
因此,我们可以看到,加泰罗尼亚数字是在递归关系的形式,即对第n个项,加泰罗尼亚数道道是,
Catalan(i)*加泰罗尼亚语(ni-1) 的总和
其中 i的 范围从0到(n-1)。
例如,打印N=5的加泰罗尼亚数,
1,2,5,14,42,132,429,1430,4862,16796,........
上述系列中的第5项是14,因此我们将输出第5个加泰罗尼亚数字的“14”。
加泰罗尼亚数的实现
下面给出的代码是第n个加泰罗尼亚数字的实现-
例子
package main import "fmt" func main() { var n =5 fmt.Scanf("%d", &n) Catalan := make([]int, n + 1) Catalan[0] = 1 Catalan[1] = 1 for i := 2; i <= n; i++ { for j := 0; j < i; j++ { Catalan[i] += (Catalan[j] * Catalan[i - j - 1]) } } fmt.Printf("The Catalan Number (Cn) is: %d", Catalan[n - 1]) }
输出
运行上面的代码将生成n=5的加泰罗尼亚数,
14