如何计算括号顺序的所有可能组合

时间:2018-04-25 14:16:48

标签: math combinations computer-science combinatorics calculation

我想找出一个关于计算括号顺序最大可能组合的公式。

首先有一些规则: - 括号必须有效(每个支架都有一个右括号) - n%2 == 0(n =括号,只有对) - 订单是敏感的,例如:a,b和b,a等于2个组合

什么是有效组合? 让我们说n是括号计数的变量:

n = 2: () - 只有一种组合

n = 4 ()(),(()) - 只有2种可能的组合

n = 6 ((())),()()(),(()()),(())(),()(()) - 5种可能的组合

现在有任何想法,当我只有n =时,如何计算组合数?

问候

1 个答案:

答案 0 :(得分:1)

您可以使用表格方法计算有效组合的数量。

表的一个维度是指序列中括号的总数,第二个维度是指左括号的数量,因此表格单元格可能表示为F(a, l)

如果2 * l > a

,您可以添加右括号

如果2 * l < n

,您可以将左括号添加到序列中

因此,逐个单元格填充表格,并将结果作为F(n, n/2)

对于有效括号序列的数量,已知公式(加泰罗尼亚语),但我想您必须使用简单的数学逻辑来计算它。