Catalan数列

引入

    今天听学长讲了卡特兰数列后对其有了更深的认识,在此完善了一下之前的博客加以总结。

    首先用一个经典的例子来描述一下Catalan数列,我们有一个1~n的数列和一个大小为n的栈,我们有如下两种操作:

      1. 当未入栈序列不为空时,使序列的第一个元素入栈。
      2. 当栈不为空时,使栈顶元素出栈。

    我们可以显然地发现,如果我们选择操作的顺序不同,我们最后所形成的出栈序列也不相同,那么有多少种出栈序列呢?

  

    而这个数列中的C(n),就是我们所定义的Catalan数列。

    如果我们把所有每一次的操作都写出来,可以得到一个关于1和2的操作序列,这个序列有以下性质:

    1. 共有2n项且n项为1,n项为2。
    2. 从左往右1的个数永远不少于2的个数。

 

定义

 

通项公式

  

通项公式推导

  方法1:数学方法,摘自某大老的PPT,表示不是很了解,在此向各位大佬请教。


 

 


 

 


 

 (注意他证明过程中的初值是

 

 


  方法2:组合数证明法

 

  我们设定一个情景:假设一个点从A(0,0)出发走到B(n,n),我们定义两种走的方法:

    1. 往右走。
    2. 往上走。

  我们从A走到B,一共要走2n步,其中n步为1,n步为2,这样我们从A走到B的方案也就可以转化为一个1和2的序列了,而所有的1和2的序列构成的排列,即为从A走到B的方案数:

  相较之于引言中所提到的序列,要使通过这种情景生成的序列是满足Catalan的数列的方案序列,我们需要的充要条件是从左往右1的个数永远比2的个数少(即向上走过的次数不少于向右走过的次数),即所走的路径只存在于紫线的上部,而这个条件等价于所形成的路径与绿线没有交点。我们已经知道了所有的方案数,我们只需要求出不满足条件的方案数就可以了。

  举出一个反例(红线)我们把这条线与绿线的第一个交点之后的部分都关于绿线对称得到蓝线部分,加上前面的部分与之形成的路径构成了一条从A(0,0)走向C(n+1,n-1)的路径,我们可以发现这样的蓝线有以下三条性质:

    1. 蓝线只向上走和向右走,且重点为C(n+1,n-1)。
    2. 对于每一条符合性质1的蓝色路径都有且只有一条不合法的红色路径与之对应。
    3. 对于每一条不合法的红色路径有且只有一条满足性质1的蓝色路径与之对应。

  由此,我们可以发现不合法的红色路径与满足上述性质的蓝色路径一一对应,所以不合法路径数就是蓝色路径数,为

  所以,所有合法的路径数为:,即Catalan的第n个数为

推论

    • n个左括号和n个右括号组成的合法括号序列的数量为Cat(n)。
    • 1,2,···,n经过一个栈,形成的合法出栈序列的数量为Cat(n)。
    • n个结点构成的不同二叉树的数量为Cat(n)。
    • 在平面直角坐标系上每一步只能向右或向上走,从(0,0)走到(n,n)并且除两个端点外不接触直线 y = x的路线数量为Cat(n)。
      • 推广:在平面直角坐标系上,每一步只能向右或上走一步,从(0,0)走到(n,m)(n ≥m)并且除两个点外不接触直线 y = x 的路线的数量为

转载于:https://www.cnblogs.com/2020pengxiyue/p/9291476.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机和外部通信方式,计算机和外部的通信方式

计算机和外部交换信息又称为通信(Communication)。按数据传送方式分为并行通信和串行通信两种基本方式。1、并行通信并行通信就是把传送数据的n位数用n条传输线同时传送。其优点是传送速度快、信息率高。并且,通常只要提供二条控制和状态线,就能完成CPU和…

android jni 结构体_Android——- jni返回结构体-Fun言

1.创建工程,添加jni2. main.cpp#include struct test_data{char name[256];int num;double average;};extern "C" {JNIEXPORT jobject JNICALL Java_com_re_struct_MainActivity_call(JNIEnv * env, jobject obj, jobject classobj);};JNIEXPORT jobject …

stm32入门之keil5的安装以及第一个工程的建立

摘自:stm32入门之keil5的安装以及第一个工程的建立 作者:SKY丶丿平才 发布时间: 2020-12-06 17:08:30 网址:https://blog.csdn.net/weixin_48264057/article/details/110734596 文章目录 前言一、keil5的下载与安装1.下载相关链接…

Java的静态域以及封装性相关

EmployeeTest类,用于定义一个简单的属性类。 1 package yang.src;2 3 import java.util.Date;4 5 public class EmployeeTest {6 private Date hireDay;7 public static final int gId 10;8 9 public int iData 11; 10 public static int iData1 …

微信电脑客户端_无聊的话,用微信玩玩电脑

被禁足的2020注定是让人印象深刻的一年如果现在你很无聊来试试用微信玩玩电脑看能否给这不出门就是做贡献的日子带来一点乐趣开启步骤1、在能使用(接触的)的电脑上安装上Hipc在电脑访问 hipc.cn下载PC客户端(仅2M左右大小)2、安装PC客户端3、微信扫一扫绑定现在看看如何用微信玩…

epic堡垒之夜显示服务器离线,堡垒之夜epic服务器进不去 | 手游网游页游攻略大全...

发布时间:2017-12-19堡垒之夜开国服了,那么有的小伙伴就发现自己的国服为什么进不去,下面牛游戏小编就为你们带来了堡垒之夜国服进不去的解决办法,想了解的小伙伴就一起来看看吧,希望能对你们有帮助. 解决办法如下: 1.重新下载并安装游戏,下载前关 ...标签&#xff…

js获取单选按钮的值

var obj document.getElementsByName("adminFlag"); for(var i 0; i < obj.length; i ) { if (obj[i].checked) { var type obj[i].value; } } 转载于:https://www.cnblogs.com/CatsBlog/p/9294771.html

动态加载 回显_ElementUI cascader级联动态加载及回显

先看图&#xff0c;你是否也遇到这个需求&#xff1f;如果你正在焦头烂额&#xff0c;无脑抓瞎&#xff0c;那么你来对地方了&#xff0c;因为我将给你一个简单易懂的实现方案。我也在网上翻了无数页答案&#xff0c;也照着别人的代码和思路尝试了&#xff0c;事实上并不能解决…

单片机的四种烧写方式

参考&#xff1a;单片机的四种烧写方式 作者&#xff1a;爱学习的小王呀 发布时间&#xff1a;2020-11-27 20:05:12 网址&#xff1a;https://blog.csdn.net/hongliwong/article/details/110245095?spm1001.2014.3001.5501 参考&#xff1a;单片机3种烧录方式解析 作者&#x…

关于驰骋表单引擎中字段扩展设置对文本框Pop窗体返回值的升级说明 2012/11/13...

为什么80%的码农都做不了架构师&#xff1f;>>> 关于驰骋表单引擎中字段扩展设置对文本框Pop窗体返回值的升级说明 2012/11/13 现有功能: 以前版本仅支持自己定义url&#xff0c;返回值到文本框上. 升级功能: 1, 增加了可以自己定义数据源模式&#xff0c;数据源可…

中兴f650 2.0.3 固件降级_手机资讯:如何升级iOS12.1.4正式版iOS12.1.4正式版升降级教程...

如今使用IT数码设备的小伙伴们是越来越多了&#xff0c;那么IT数码设备当中是有很多知识的&#xff0c;这些知识很多小伙伴一般都是不知道的&#xff0c;就好比最近就有很多小伙伴们想要知道如何升级正式版正式版升降级教程&#xff0c;那么既然现在大家对于如何升级正式版正式…

C# 加密解密类

一. MD5 1 防止看到明文 数据库密码&#xff0c;加盐(原密码固定字符串&#xff0c;然后再MD5/双MD5) 2 防篡改 3 急速秒传(第一次上传文件&#xff0c;保存md5摘要&#xff0c;第二次上传检查md5摘要) 4文件下载(防篡改&#xff0c;官方发布的时候给一个md5摘要&#xf…

请求solr服务器未响应,solr与tomcat整合

一、准备工作&#xff1a;我使用的是tomcat7.0,solr-4.8.1solr-4.8.1解压后是这样的。二、开始配置了1、首先要创建两个文件夹。home和server。我是创建在与solr-4.8.1同一根目录上的。D:\work-tool\server\solr\home和D:\work-tool\server\solr\server2、从solr-4.8.1\dist复制…

单列多行转单行单列合并oracle_oracle中多行转单行的两种方法

在oracle中多行转单行的方法有很多比如&#xff1a;wmsys.wm_concat、listagg。但是要注意它们支持的oracle版本&#xff0c;wmsys.wm_concat是oracle 10g推出的&#xff0c;listagg是oracle 11g推出的。wmsys.wm_concat的用法select wmsys.wm_concat(多行转转单行的列) from t…

WeMos下实现小车避障与手机控制

参考&#xff1a;WeMos下实现小车避障与手机控制 作者&#xff1a;爱学习的小王呀 发布时间&#xff1a;2020-10-02 10:17:45 网址&#xff1a;https://blog.csdn.net/hongliwong/article/details/108900048?spm1001.2014.3001.5501 目录前言一、项目软硬件平台及开发环境1.硬…

苹果手机耗电快_iPhone12用5G耗电快,苹果回应

原标题&#xff1a;iPhone12用5G耗电快&#xff0c;苹果回应北京头条客户端10月24日消息&#xff0c;针对有媒体测试苹果iPhone12开启5G模式下&#xff0c;用电量提升的问题&#xff0c;苹果iPhone营销副总裁Kaiann Drance回应称&#xff0c;iPhone12 增加的智能数据模式可以平…

Ubuntu12 10下安装JDK7

为什么80%的码农都做不了架构师&#xff1f;>>> Ubuntu12 10版本下&#xff0c;不再预装JDK&#xff0c;包括OpenJdk&#xff0c;所以我们要从Oracle官网上下载java7的压缩包&#xff0c;选择适合自己电脑的安装包&#xff0c;我选的是jdk-7u9-linux-i586.tar.gz。…

粒子文字特效css,CSS3 粒子效果

css3粒子效果#topcanvas{position:absolute;background:#fff;z-index:-7;width:300px;height:300px;}function $(id){return typeof id "string" ? document.getElementById(id) : id;}(function (window, undefined) {if (window.ZHJ) {return;}// }var ZHJ wind…

maven系列一:pom.xml文件详解

<project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <!-- 父项目的坐…

单片机原理概念

参考&#xff1a;单片机原理概念 作者&#xff1a;爱学习的小王呀 发布时间&#xff1a;2020-11-27 08:58:08 网址&#xff1a;https://blog.csdn.net/hongliwong/article/details/110219821?spm1001.2014.3001.5501 单片机原理概念单片机执行指令单片机数的本质和物理现象单片…