【问题标题】:How to calculate all possible combinations of brackets order如何计算括号顺序的所有可能组合
【发布时间】:2018-04-25 14:16:47
【问题描述】:

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

首先有几条规则: - 括号必须有效(每个括号都有一个右括号) - n % 2 == 0(n = 括号,仅对) - 顺序是敏感的,例如:a,b 和 b,a 等于 2 个组合

什么是有效的组合? 假设 n 是括号​​计数的变量:

n = 2: () - 只有 1 种可能的组合

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

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

现在有什么想法可以在我只有 n = 时计算组合数吗?

问候

【问题讨论】:

  • 可能更适合 Math SE。
  • (1) 给定一个项目,看看如何创建序列中的下一个项目。例如,如何从第一个到第二个?从第二个到第三个?第三到第四?也许你会在那里看到一个模式。 (2) 如果序列中有多个数字并且没有看到模式,则可以浏览 OEIS(整数序列在线百科全书),看看它是否在某些上下文中已知。祝你好运,玩得开心。

标签: math combinations computer-science combinatorics calculation


【解决方案1】:

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

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

如果2 * l > a,您可以将右括号添加到序列中

如果2 * l < n,您可以将左括号添加到序列中

所以逐个单元格填充表格并获得结果为F(n, n/2)

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    相关资源
    最近更新 更多