今天晚上小妹问我一个问题,
“有一个随意的数组,一个栈,一个队列。现将数组内的元素随机进栈或进队列,等数组中所有元素均在栈中与队列中时,开始出栈和出队列。问题是:这样形成的序列总数有多少种?”
对于这个问题,我现在还没有很确切的解答。要解决这个问题,需先了解如果单独只有栈时,序列有多少种的解决方法。因此,我也花了些时间在“出栈序列”种类问题上,从而发现了非常有趣了“Catalan数”。
【对于小妹的问题,我已经在8月31号做出了解答,用程序模拟出来了。可以发现得出来的序列并不是全排列,是介于栈与全排列之间的序列】
在中文维基上[1],它是这么来定义的:
卡塔兰数是组合数学中一个常出现在各种计数问题中出现的数列。由以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名。
卡塔兰数的一般项公式为 
前几项为 (OEIS中的数列A000108): 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020, 91482563640, 343059613650, 1289904147324, 4861946401452, ...