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

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

hot3.png

堆栈的出栈种数:

一般思路:

在这里堆栈有一个特点,对于任意一个数字,比之小的数字在其之前出栈,所以对于任意一个数字k最后一个出栈的模型为:

在k入栈之前,小于k的k-1个数字入栈并出栈,在k入栈之后,其余n-k个数字入栈并出栈,最后k出栈。so:

每一个k最后出栈的种数为:f(k)=f(k-1)*f(n-k)  然后求和即可。

建模:(与买票等等一个模型)

对于每一次进栈或者50块相当于数字‘1’,出栈或者100相当于数字‘0’,则要求对于2n个数组包含n个1,且任意前n个数字中1的个数比0的个数多,则通过算出所有排列,减去不合要求的种数即可:

合适:从2n个数字中选个n个位置放置1:C(2n,n)

不合适:对于奇数位2m+1,前2m+1位第一次出现0比1多,即m+1个0和m个1,(1.)则后面2n-2m-1个数字当中有n-m-1个0,以及n-m个1,(注意了)把1,0互换,则后面有n-m-1个1,以及n-m个0,则总体有n+1个0,和n-1个1,每个不合要求的排列对于一个由n+1个0,n-1个1对于的排列

对于任意一个由n+1个0以及n-1个1构成的2n个数字组成的任意一个排列都存在从第2m+1位开始第一次出现0比1多的现象,对于后面的n-m个0,与n-m-1个1互换,(变!)变成不合要求的的排列(n个1,n个0),总结:两者一一对应!

不合适的为:C(2n,n-1)

则:种类为f(n)=C(2n,n)-C(2n,n-1)  卡特兰数

转载于:https://my.oschina.net/tigereatspinach/blog/371860

你可能感兴趣的文章
PageOfficeV4.0 FileMaker组件功能简介
查看>>
抱歉,链接因存在有害信息逾期未处理被关闭的解决办法
查看>>
胡喜:从 BASIC 到 basic ,蚂蚁金服技术要解决两个基本的计算问题
查看>>
linux 学习笔记 Unite 3
查看>>
HTTP请求:GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE
查看>>
spring自动检测组件不同配置
查看>>
gpg
查看>>
JSP开发中防止用户浏览器的刷新键引起系统操作重复提交
查看>>
pppoe server name详解
查看>>
工业控制系统_ICS_概述和与IT系统的比较
查看>>
Linux用户管理(一)Linux系统概述
查看>>
nodejs express mongodb
查看>>
squid标准的传统代理
查看>>
java学习日记(1)
查看>>
电脑快捷键+C++继承与派生
查看>>
显示器和显示卡
查看>>
git安装 编译安装
查看>>
Python DBUtils数据连接池与mysql配合用法
查看>>
db2数据库HADR搭建
查看>>
中兴2928static/dhcp配置
查看>>