买票问题:一张票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);