博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
卡特兰数入门
阅读量:5748 次
发布时间:2019-06-18

本文共 973 字,大约阅读时间需要 3 分钟。

推荐博客 : https://blog.csdn.net/qq_26525215/article/details/51453493

       https://blog.csdn.net/doc_sgl/article/details/8880468

       http://www.jb51.net/article/37511.htm

 

卡特兰数是一个出现在组合数学中的数列

卡特兰数前 20 项为 :1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190

递推公式如下 : F(n+1) = (4*n - 6)*F(n) / n

 

 

判断一个问题是不是此类问题,有两种比较思考的方向

1 . 将整个问题简化为一个只有 01 的数列,例如括号匹配的问题,

 n 组括号合法的运算式的个数 , 将左括号看成 0 ,右括号看成 1 ,所以总的方案是C(2n, n), 则任意一个合法的序列在奇数位置上不能有 1 ,当不合法时,将不合法位置到开头的位置全部反置,则这样处理后的 0 的个数将变成 n+1 , 1 的个数变成 n-1 , 此种排列组合对应着一组不合法的解, 是C(2n-1, n) , 两式相减即可

2 . 第二种就是要从卡特兰数的定义出发, f(n) = f(0)*f(n) + f(1)*f(n-1) +...+ f(n)*f(0)

求一个凸多边形区域划分成三角形区域的方法数?

以凸多边形的一边为基,设这条边的2个顶点为A和B。从剩余顶点中选1个,可以将凸多边形分成三个部分,中间是一个三角形,左右两边分别是两个凸多边形,然后求解左右两个凸多边形。

      设问题的解f(n),其中n表示顶点数,那么f(n) = f(2)*f(n-1) + f(3)*f(n-2) + ......f(n-2)*f(3) + f(n-1)*f(2)。f(2)*f(n-1)表示三个相邻的顶点构成一个三角形,那么另外两个部分的顶点数分别为2和n-1。

 

转载于:https://www.cnblogs.com/ccut-ry/p/8933997.html

你可能感兴趣的文章
Spring Transactional
查看>>
shell脚本实例
查看>>
我的友情链接
查看>>
Windows Phone 7 隔离存储空间资源管理器
查看>>
Microsoft Excel 2000/2003修复工具
查看>>
apache安装报错undefined reference ssl
查看>>
关于爱情只有一句忠告
查看>>
CentOS 7下安装部署Oracle11g图文教程
查看>>
F#初学笔记06
查看>>
实战:将企业域名解析委派给企业DNS服务器
查看>>
在Lync 2013环境部署Office Web Apps
查看>>
微软大会Ignite,你准备好了么?
查看>>
读书笔记-高标管事 低调管人
查看>>
Master带给世界的思考:是“失控”还是进化
查看>>
用户和开发者不满苹果iCloud问题多多
查看>>
java.lang.UnsatisfiedLinkError:no dll in java.library.path终极解决之道
查看>>
我的工具:文本转音频文件
查看>>
【许晓笛】从零开始运行EOS系统
查看>>
【跃迁之路】【460天】程序员高效学习方法论探索系列(实验阶段217-2018.05.11)...
查看>>
C++入门读物推荐
查看>>