卡特兰数列
来源:互联网 发布:追日房地产软件 编辑:程序博客网 时间:2024/04/29 00:15
卡特兰数列的递推公式如下:
h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (n>=2)
例如:h(2)=h(0)*h(1)+h(1)*h(0)=1*1+1*1=2
h(3)=h(0)*h(2)+h(1)*h(1)+h(2)*h(0)=1*2+1*1+2*1=5
另类递推式:
h(n)=h(n-1)*(4*n-2)/(n+1);
递推关系的解为:
h(n)=C(2n,n)/(n+1) (n=0,1,2,...)
递推关系的另类解为:
h(n)=c(2n,n)-c(2n,n-1)(n=0,1,2,...)
证明在百度上就可以,我主要想说的是我对卡特兰数列的理解:
卡特兰数列解决问题时的主要特征是进行两种操作,求解可行的方案数量,例如数的出入栈,分为出栈和入栈两个操作;在坐标轴上从原点向(m,n)行走,每次只能向右或者向上行走一个单位;求解决这两个问题的具体方案数量借助卡特兰数极为简便,下边给出求卡特兰数列的C语言代码:
在这里我对代码解释一下,例如问题二,求到(m,n)的方案数量就可以输入m,n直接进行解决。
#include<stdio.h>int main(){__int64 a[30][30]={0};int i,j,n,m;a[0][0]=1;a[1][0]=1;for(i=0;i<30;i++)for(j=0;j<=i;j++){if(j==0)a[i][j]=1;else if(j==i)a[i][j]=a[i][j-1];elsea[i][j]=a[i-1][j]+a[i][j-1];}while(1){scanf("%d%d",&n,&m);printf("%I64d\n",a[n+1][m+1]);}return 0;}
阅读全文
0 0
- 卡特兰数列
- 卡特兰数列
- 卡特兰数列
- 卡特兰数列
- 卡特兰数列
- hdu 4165(卡特兰数列)
- hdu 4165 卡特兰数列
- hdu 1130 卡特兰数列
- HDU4165 (卡特兰数列) Pills
- 卡特兰(Catalan)数列
- HDU 4165 Pills (DP卡特兰数列)
- bzoj1485: [HNOI2009]有趣的数列 卡特兰数
- HDU1023 Train Problem 2 (卡特兰数列)
- hdoj.4165 Pills【卡特兰数列】 2015/08/27
- C++实现——卡特兰数列及其应用
- 【题】【数学(卡特兰数)】NKOJ3798 有趣的数列
- 斐波那契数列与卡特兰数
- bzoj 1485: [HNOI2009]有趣的数列 (卡特兰数)
- Java的运算符
- Hashmap 剖析
- java 虚拟机如何启动的?启动之后都做了什么
- 单词转换程序——使用map&文件读写操作
- RNN初探
- 卡特兰数列
- 数据结构<九>: 链表实现的线程表
- 【Scikit-Learn 中文文档】集成方法
- Bean的继承配置
- CCS显示异常怎么办
- jacoco + junit + mock 单测没有统计覆盖率问题
- 171123之把excel表中数据提交到数据库中
- 关闭SELINUX
- Python Numpy中reshape函数参数-1的含义