解释:
这是一个卡特兰数列
我们可以把左括号看做1,右括号看做0,这些括号的组合就是01的排列
这里需要满足从第一个数开始的任意连续子序列中,0的个数不多于1的个数,也就是右括号的个数不多于左括号的个数。
假设我们不考虑这个限制条件,那么全部的01排列共有C(2n,n)种,也就是一半0一半1的情况
现在我们想办法把其中不符合要求的数量去掉
在任何不符合条件的序列中,找出使得0的个数超过1的个数的第一个0的位置,然后在导致并包括这个0的部分序列中,以1代替所有的0并以0代表所有的1。结果总的序列变成一个有(n+1)个1和(n-1)个0的序列。而且这个过程是可逆的,也就是说任何一个有(n+1)个1和(n-1)个0构成的序列都能反推出一个不符合条件的序列,所以不符合条件的序列个数为C(2n,n-1)
所以合法的排列数有C(2n,n)-C(2n,n-1)= C(12,6)-C(12,5)=132
---------------------
作者:风尘璞
来源:CSDN
原文:https://blog.csdn.net/baidu_35534327/article/details/54565164
版权声明:本文为博主原创文章,转载请附上博文链接!
一个合法的表达式由()包围,()可以嵌套和连接,如(())()也是合法表达式;现在有 6 对(),它们可以组成的合法表达式的个数为_132___
最新推荐文章于 2023-07-16 20:57:55 发布