卡特兰数

卡特兰数是组合数学中一个常出现在各种计数问题中出现的数列,其前n项为(从0开始):1,1,2,5,14,42,132,429,1430,4862...

卡特兰数满足以下性质:

1.令h(0)=1,h(1)=1,Catalan数满足递推式。

h(n) = h(0)*h(n-1) + h(1)*h(n-2)+...+h(n-1)*h(0),(n>=2)

其它通项公式:

 h(n) = C_{2n}^{n} - C_{2n}^{n+1} (n=0,1,2,3...)

h(n) = \frac{C_{2n}^{n}}{(n+1)}

代码实现:

def catalan(n):
    if n==0 or n==1:
        return 1
    return (4*n-2)*catalan(n-1)/(n+1)

 

卡特兰数的应用:

1.12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比第一排的人高,问排列的方式有多少种?

C_{2n}^{n} - C_{2n}^{n-1} = C_{12}^{6} - C_{12}^{5} = 132

 

看到一个链接(https://blog.csdn.net/wookaikaiko/article/details/81105031),后头补充一下

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值