卡特兰数的基于映射原理的推导证明以及在排列问题上的相关应用
一、前提:
• 构建一个(S,X)序列,其中用 S 表示入栈,用 X 表示出栈,S和X个数相同为n。
• 显然,在每个合理序列的任意前缀子序列中,S(入栈)的个数总是大于等于X(出栈)的个数。
• 易得,对于一个有n个S和n个X的2n序列,它的总序列数为 C(2n,n),包括合理序列和不合理序列。
• 那么所要求的 合理序列数 = 总的序列数 - 不合理序列数。
二、推导:
三、总结:
由此,我们可以得出得出满足卡特兰数规律的有关排列问题特征:
1.这个问题里存在两类事件(出栈、入栈 或 5元钱、10元钱 或 左括号、右括号 或 向右走、 向上走)
2.这两类事件在排列时有先后顺序
• 出入栈问题:入栈个数总是大于等于出栈个数
• 5元10元找零问题:收5元钱的次数总是要大于等于收10元钱的次数,才能给给10元钱的人找钱
• n组括号的合法运算式问题:左括号的个数也总是要大于等于右括号的个数
• n × n格点中不越过对角线的单调路径的个数问题:n个向上和向右,且向右的个数必须大于等于向上的个数,总的走法:Cn,