上面这一事实也可以直接推出,原因是一个n个元素集合的任意一个子集可以使用长度为n的二进制字符串来识别。方法如下:我们考虑一个集合,比如{a1,a2,…,an},则一个长度为n的二进制字符串定义了它的一个子集,因为字符串中的每个1表示相应的元素ai存在于我们的子集中。例如,假设n=4,字符串0111和0000分别代表{a2,a3,a4}和空集。由于二进制字符串的每个位置都有两种取值选择,因此共有2n个这样的字符串,一个n元素集合便含有2n个子集。
卡特兰数
这种数有种最简单的图形表达,是用n段上斜线段和n段下斜线段能画出多少组不同的“山脉”(如图3)。
图3 用3段上斜线段和3段下斜线段,共有5种山脉形态
每种不同的山脉构型都对应一组有意义的括号,因此将n对括号有意义地排列起来的方法个数,恰好是第n个卡特兰数。例如,(())()和((()))是有意义的括号方法,但())(()不是:有意义是指从左向右数时,左括号的个数从不小于右括号的个数。这对应于山脉始终位于地面上方这一自然条件。比方说,图3中第一个和最后一个山脉的构型分别对应于()(())和()()()这两种括号排列。