数论整理之特殊数two:卡特兰数

简介: 数论整理之特殊数two:卡特兰数

②卡特兰数 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020, 91482563640, 343059613650, 1289904147324, 4861946401452,


85.png

应用:

one:括号化:矩阵连乘: P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?(h(n)种)


two:出栈次序:一个栈(无穷大)的进栈序列为1,2,3,…,n,有多少个不同的出栈序列:h(n) || 买票找票问题


three:凸多边形三角划分:通过若干条互不相交的对角线,把这个多边形划分成了若干个三角形。任务是键盘上输入凸多边形的边数n,求不同划分的方案数f(n)= h (n - 2)


others:


一人去她住所以北n个街区和以东n个街区处工作。每天她走2n个街区去上班。如果她从不穿越(但可以碰到)从家到办公室的对角线,那么有多少条可能的道路?


在圆上选择2n个点,将这些点成对连接起来使得所得到的n条线段不相交的方法数?


给定N个节点,能构成多少种不同的二叉搜索树?(能构成h(N)个)(这个公式的下标是从h(0)=1开始的)


n对括号正确匹配数目:3对括号:((())) ()(()) ()()() (())() (()()) 5种可能


n层的阶梯切割为n个矩形的切法数也是C(n)


86.png

87.png

Cn表示所有不同构的含n个分枝结点的满二叉树的个数(一个有根二叉树是满的当且仅当每个结点都有两个子树或没有子树)

Cn表示所有在n × n格点中不越过对角线的单调路径的个数

一个单调路径从格点左下角出发,在格点右上角结束,每一步均为向上或向右

88.png

代码:

#include <stdio.h>
unsigned long long ctl[34] = {0,1};
void calc()
{
    int i;
    for(i = 2; i < 34; i ++)
        ctl[i] = ctl[i-1]*(4*i-2)/(i+1);
}
int main()
{
    int i;
    calc();
    for(i = 0; i < 34; i ++)
        printf("%d: %llu\n",i, ctl[i]);
}//最高计算33个卡特兰数
相关文章
|
8月前
|
Java C++
数的范围(考查二分)
数的范围(考查二分)
59 0
|
算法
【算法专题突破】双指针 - 快乐数(3)
【算法专题突破】双指针 - 快乐数(3)
59 0
|
8月前
|
C语言
浙大版《C语言程序设计(第3版)》题目集 练习8-2 计算两数的和与差 (10分)
浙大版《C语言程序设计(第3版)》题目集 练习8-2 计算两数的和与差 (10分)
|
8月前
【一刷《剑指Offer》】面试题 10:二进制中 1 的个数
【一刷《剑指Offer》】面试题 10:二进制中 1 的个数
|
8月前
代码随想录Day32 动态规划01 LeetCodeT509 斐波那契数列 T70 爬楼梯 T746 爬楼梯的最小消耗
代码随想录Day32 动态规划01 LeetCodeT509 斐波那契数列 T70 爬楼梯 T746 爬楼梯的最小消耗
54 0
|
算法
代码随想录算法训练营第三十八天 | LeetCode 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
代码随想录算法训练营第三十八天 | LeetCode 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
61 0
【动态规划入门】动态规划思路五部曲_斐波那契_爬楼梯_最小花费爬楼梯
【动态规划入门】动态规划思路五部曲_斐波那契_爬楼梯_最小花费爬楼梯
83 0
数论整理之特殊数one:斐波那契数列
数论整理之特殊数one:斐波那契数列
104 0
数论整理之特殊数three:142857
数论整理之特殊数three:142857
158 0
力扣刷题记录——682. 棒球比赛、628. 三个数的最大乘积、693. 交替位二进制数
力扣刷题记录——682. 棒球比赛、628. 三个数的最大乘积、693. 交替位二进制数
154 0
力扣刷题记录——682. 棒球比赛、628. 三个数的最大乘积、693. 交替位二进制数