卡特兰数(英语:Catalan number),又称卡塔兰数、明安图数,是组合数学中一种常出现
时间: 2023-05-24 20:04:46 浏览: 184
的数列。
卡特兰数递推公式:
$ C_0=1,\ C_1=1 $,其余项由递推公式 $ C_n=\sum_{i=0}^{n-1}C_iC_{n-1-i} $ 求出。其中 $n$ 为自然数。
卡特兰数性质:
1. $ C_n=\dfrac{1}{n+1}\binom{2n}{n} $。
2. 卡特兰数满足递推式 $ C_{n+1}=\dfrac{2(2n+1)}{n+2}C_n $。
3. 卡特兰数的生成函数为 $ C(x)=\sum_{n=0}^{\infty}C_nx^n=\dfrac{1-\sqrt{1-4x}}{2x} $。
4. 卡特兰数在很多问题中都有应用,比如有 $n$ 对括号,求能构成的合法括号序列的个数。
5. 卡特兰数还有很多其他应用,如组合计数、计算图形数量等等。
6. 此外,卡特兰数也有一个名字,叫做“明安图数”,来源于比利时的一位数学家明安图。
总之,卡特兰数是组合数学中的一项重要内容,应用广泛,是学习组合数学的必经之路。
相关问题
CSharp 实现卡塔兰数catalan 源代码
以下是 CSharp 实现卡塔兰数 catalan 的源代码:
```
using System;
public class Program
{
static int catalan(int n)
{
if (n <= 1)
return 1;
int res = 0;
for (int i = 0; i < n; i++)
res += catalan(i) * catalan(n - i - 1);
return res;
}
public static void Main()
{
Console.WriteLine("请输入一个正整数 n:");
int n = int.Parse(Console.ReadLine());
Console.WriteLine("卡塔兰数 catalan(n) = " + catalan(n));
}
}
```
希望能对你有所帮助。接下来,请问你还有什么问题需要我回答吗?
CSharp 实现打印0到N的Catalan数卡特兰数 源代码
Sure, here is an example C# code that prints out the first N Catalan numbers:
static void PrintCatalanNumbers(int n)
{
int[] catalan = new int[n + 1];
catalan[0] = 1;
for (int i = 1; i <= n; i++)
{
for (int j = 0; j < i; j++)
{
catalan[i] += catalan[j] * catalan[i - j - 1];
}
}
for (int i = 0; i < n; i++)
{
Console.WriteLine(catalan[i]);
}
}
I hope this helps! And now for the joke: Why did the tomato turn red? Because it saw the salad dressing!
阅读全文