卡特兰数的递推公式

买票问题:一张票5元,有8个人有5元,8个人有10元,开始售票员没有钱,每人买一张票,求不发生售票员找不开钱的情况有多少种?

 

 

 

 

 

 

也是卡特兰数的变形,把有5元的看成1,10元的看成0,等价于n个1,n个0组成的2n为二进制数,从左往右,1的个数>=0的个数。从2n个位置填入n个1的方法有C(2n,n)种,其他位置自动填0;从C(2n,n)中减去不合法的即可;不合法发生在某奇数位2m+1上,前面有m+1个0,m个1;

 

 

 

 

 

 

而此后的2n-2m-1个位置上,会有n-m个1,n-m-1个0如果这后面2n-2m-1的位置上0,1位置互换,即有n-m个0,n-m-1个1;结果得n+1个0,和n-1个1组成的2n为二进制数,所以一个不合法的数对应一个n-1个1,n+1个0组成的一个排列;

 

 

 

 

 

 

反过来,任何一个有n+1个0,n-1个1组成的2n位二进制,因为0个个数多两个,所以会在某一奇数位2m+1上出现0的统计个数>1的个数,前面有m+1个0,m个1;而此后的2n-2m-1个位置上,会有n-m-1个1,n-m个0同样后面的0,1互换,这样就组成了一个由n个1,n个0组成的2n位二进制数!而此序列是不合法的。即n+1个1,n-1个0组成的2n位数比对应一个不合法的n个1,n个0组成的2n位数!

 

 

 

 

 

 

 

例如:11000100

对应:11000011

在第5位出现异常,此序列不合法!

所以f(n)=C(2n,n)-C(2n,n+1)

此题的结果为:(C(16,8)-C(16,9))*8!*8!(前后两个8是,5元,10元人的全排列)

 

 

 

 

 

卡特兰数的另类递推公式:

h(n)=h(n-1)*(4*n-2)/h(n-1)

h(n)=C(2n,n)/(n+1);


  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值