递归方法:我们如何生成括号上的所有可能性?

2023-12-05

我们怎样才能在大括号上生成所有可能性?

N值已经给了我们,我们要产生所有的可能性。

例子:

1) 如果 N == 1,则只有一种可能性 () 。

2) 如果 N==2,则可能性为 (())、()()

3) 如果 N==3,则可能性为 ((()))、(())()、()()()、()(()) ...

注意:左括号和右括号应该匹配。我的意思是 )( 对于 N==1 无效

我们可以用递归的方法来解决这个问题吗?


来自维基百科 -

Dyck 单词是由 ​​n 个 X 和 n 个 Y 组成的字符串,因此该字符串的初始段中 Y 的数量不会多于 X 的数量(另请参阅 Dyck 语言)。例如,以下是长度为 6 的 Dyck 词:

XXXYYY     XYXXYY     XYXYXY     XXYYXY     XXYXYY.

将符号 X 重新解释为左括号,将 Y 重新解释为右括号,Cn 计算包含正确匹配的 n 对括号的表达式的数量:

((()))     ()(())     ()()()     (())()     (()())

也可以看看http://www.acta.sapientia.ro/acta-info/C1-1/info1-9.pdf

抽象的。提出了一种生成所有 Dyck 词的新算法, 用于对 Dyck 单词进行排名和取消排名。我们强调 在编码与加泰罗尼亚语相关的对象时使用戴克词的重要性 数字。作为排名算法中使用的公式的结果 我们可以得到第 n 个加泰罗尼亚数的递归公式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

递归方法:我们如何生成括号上的所有可能性? 的相关文章

  • 有没有相互递归的例子?

    是否有递归函数调用另一个函数 该函数也调用第一个函数 的示例 例子 function1 do something function2 do something function2 do something function1 do some
  • 最有效地将编译时大小的数组的所有元素相加

    我正在尝试使用最少量的指令 有效地将所有内容添加到编译时大小的数组中 当然 我正在使用模板 我创造了这个 template
  • 如何改进 PHP 分页算法?

    我正在研究 PHP 中的分页算法 我可以猜测它需要改进的空间 所以我想对如何改进它有一些想法 无论是从 UI UX 的角度清理代码本身 还是你能想到的任何其他东西 该算法应输出如下所示的分页 1 2 3 6 7 8 97 98 99 or
  • 是否可以证明序列是否是随机的?

    考虑以下输入 1 1 2 3 5 8 这不是随机的 2 4 8 16 32 这都不是 4 1 2 11 5 9 这个看起来像随机序列 我想问是否有这样的算法来证明输入是否是随机的 不 没有这样的证明 如果你有完全随机的数字 则每个长度为 n
  • 查找数组中的组合

    我在java中有一个像这样的二维数组 transmission communication tv television approach memorycode methodact 我需要获得所有组合 例如 transmission appr
  • Lisp 中的十进制到二进制 - 制作非嵌套列表

    当达到我的递归情况时 我使用list将未来结果附加到当前结果 但由于递归 我最终得到一个嵌套列表 当我有一个导致递归超过五次的数字时 这会导致错误 任何想法如何我可以在一个简单的非嵌套列表中获得结果 例如 CL 用户 100 8 gt BI
  • 如何找到给定顶点的所有多边形?

    我有一个顶点列表 并且我知道它们之间的连接 我试图找到顶点的所有多边形形状 这些多边形形状不应重叠 我做了一些研究 我认为如果我可以顺时针 或逆时针 没有区别 遍历顶点 我可以检测多边形形状 因此 我寻找顺时针遍历顶点的解决方案 我发现了一
  • 变量的多个值介于 0 和数字序言之间

    所以我一直在尝试自学序言 我认为我进展顺利 然而 我有点坚持我正在尝试的这一种方法 toN N A A 等于 0 到 N 1 之间的整数值 按升序生成 所以 toN 5 A 将是 A 0 A 1 A 2 A 3 A 4 我对序言还很陌生 所
  • 为什么路径压缩不会改变 UnionFind 中的排名?

    我正在研究 UnionFind 的实现 并从这里进行排序和路径压缩http en wikipedia org wiki Disjoint set data struct Disjoint set forests http en wikipe
  • 如何在 Alloy 中构建递归谓词/函数

    我试图在 Alloy 中生成两组类 例如重构之前的类 重构应用程序后的应用程序和类 假设在第一组中我们有以下类 ALeft gt BLeft gt CLeft Class1 Class2 gt Class3 gt Class4 这意味着 A
  • 绘图:仅保留最相关的数据

    为了节省带宽并且不用自己生成图片 图表 我计划使用 Google 的图表 API http code google com apis chart http code google com apis chart 它的工作原理是简单地发出一个
  • 生成尾调用操作码

    出于好奇 我尝试使用 C 生成尾部调用操作码 斐波那契数很简单 所以我的 C 示例如下所示 private static void Main string args Console WriteLine Fib int MaxValue 0
  • 计算某个数的某次幂的模(该次幂的数字相当大)

    我想自己计算RSA算法 我需要计算某个数的某个幂的模数 问题是 在一定的功率下 这个数字可能会变得相当大 这就是我想要的 x pow n p q 如何有效地确定 x 如果您使用 NET 4 我建议您查看BigInteger http msd
  • Java 中类似 HashMap 的可排序数据结构?

    Java 中是否有某种类似于 HashMap 的数据结构 可以按键或值排序 在 PHP 中 您可以拥有可排序的关联数组 Java中有这样的东西吗 HashMaps 几乎按照定义是未排序的 一个好的哈希函数会产生看似随机的密钥分布 如果你想使
  • 线性模式匹配算法?

    我有一个由 0 和 1 组成的线性列表 我需要匹配多个简单模式并找到第一个出现的情况 例如 我可能需要找到0001101101 01010100100 OR 10100100010长度为 800 万的列表内 我只需要找到第一次出现的情况 然
  • 为什么在我的遗传算法中添加交叉会给我带来更糟糕的结果?

    我已经实现了遗传算法来解决旅行商问题 TSP 当我仅使用突变时 我找到了比添加交叉更好的解决方案 我知道普通的交叉方法不适用于 TSP 所以我实现了有序交叉 http www permutationcity co uk projects m
  • 计算字母表的第 n 个 6 个字符排列

    我已经研究了好几天 试图找到解决这个问题的方法 如果需要的话 我很乐意花钱请人咨询时间来解决这个问题 我目前正在使用Python迭代工具 http docs python org 2 library itertools html生成 32
  • 有向无环图的拓扑排序为阶段

    是否有一种算法 给定一个未加权的有向无环图 将所有节点排序到节点集列表中 使得 拓扑顺序被保留 即 对于所有边u gt v v出现在列表中更靠下的集合中u and 列表的长度是最小的 这个问题有名字吗 Example 下图的一种可能的排序是
  • boost::graph 算法是否能够使用以前的解决方案更快地解决密切相关的新问题?

    我在下图中定义了最大流量问题 最初 所有四个边缘的容量均为 4 个单位 我求从 0 到 3 的最大流量值 答案是 8 沿路径 0 gt 1 gt 3 4 个单位 沿路径 0 gt 2 gt 3 4 个单位 以下代码创建图表并查找最大流量 i
  • 动态前缀和

    是否有任何数据结构能够返回数组的前缀和 1 更新元素以及向数组插入 删除元素 所有这些都在 O log n 内 1 前缀和 是从第一个元素到给定索引的所有元素的总和 例如 给定非负整数数组8 1 10 7前三个元素的前缀和是19 8 1 1

随机推荐

  • 使用 Windows Batch 脚本在 FOR 循环中计数

    谁能解释一下吗 我可以使用 Windows 命令提示符循环计数 使用以下方法 SET A XCOUNT 0 loop SET A XCOUNT 1 echo XCOUNT IF XCOUNT 4 GOTO end ELSE GOTO loo
  • 是否有基于任务的 System.Threading.Timer 替代品?

    我是 Net 4 0 任务的新手 我无法找到我认为是基于任务的计时器替换或实现 例如周期性任务 有这样的事吗 Update 它取决于 4 5 但这有效 public class PeriodicTask public static asyn
  • CakePHP - 删除级联不起作用

    在 CakePHP 中 我有一个模型 Type 和 SpecificType SpecificType 属于一个 Type type id 字段 当我删除SpecificType的条目时 如何才能同时删除Type 我把它作为 this gt
  • .filter() 函数返回未定义而不是过滤数组

    我正在尝试理解 javascriptArray filter方法 为什么下面的代码会返回undefined 我缺少什么 function driversWithRevenueOver driver revenue driver filter
  • 使用OpenGL绘制圆的一部分?

    我只想画一个部门 部分3d 圆的 给出 2 个角度 起点 终点 圆心坐标 半径和宽度 你能帮我做那件事吗 计算圆上点的公式 给定半径 圆心 x0 y0 和角度 以弧度为单位 float x radius cos angle x0 float
  • C++ 高效使用 new 运算符

    当用 new 实例化一个类时 如果不删除内存 我们会通过对象的重用获得哪些好处 新的流程是怎样的 是否发生上下文切换 新的内存被分配了 谁来分配 操作系统 你在这里问了几个问题 Instead of deleting the memory
  • 是否存在与 PE 基址重定位等效的 ELF?

    我一直在研究一些 ELF 二进制文件的反汇编 我注意到了这一点 0000000000401020 lt start gt 401020 31 ed xor ebp ebp 401022 49 89 d1 mov r9 rdx 401025
  • pysftp -- paramiko SSHException,来自服务器的错误主机密钥

    我正在尝试通过以下方式连接到远程主机pysftp try with pysftp Connection inventory 0 username transit private key ssh id rsa sftp port 8055 a
  • 根据数组中的元素作为索引删除数组元素

    假设我有一个数组 let arr1 0 2 This is always sorted 注意 数组中的这些元素表示要从另一个数组中删除的索引 我有另一个数组 let arrOvj 1 4 6 7 21 17 12 我想删除 arrObj 的
  • 如何使用同一台 Mac 在不同版本的 OSx 上测试和调试 Cocoa App?

    我使用 Mac 和 Yosemite 制作了一个应用程序 完成后 我将其存档 然后分发给几个朋友 其中一个拥有小牛队 我在 Mavericks 系统上遇到了一些问题 随着这件事情的发生 我心中产生了以下疑问 我可以在不同的 OSX 版本上检
  • 让 UITableViewCell 使用自动布局调整自身大小

    我有 3 个标签UITableViewCell并设置标签 以便它们自动换行 如果自动换行 文本将进入下一个单元格 如何让 AutoLayout 根据内容展开单元格 而无需在中编写代码heightForRowAtIndex方法 是否没有一个约
  • 使用 String.Format 自定义格式时间跨度

    我想将时间跨度格式化为这样的格式 49 hr 34 mn 20 sec 我使用了下面的字符串格式 String Format 0 00 1 00 2 00 theTimeSpan TotalHours theTimeSpan Minutes
  • erlang 中的数组实现

    我的问题是 与列表相反 在 Erlang 中如何实现数组 使用不可变类型做类似的事情 move X Xs Ys gt X Ys Ls move 1 2 3 2 3 4 将占用堆中的常量内存 因为这都是参考工作 但是对于数组中的相同内容 mo
  • 在 Three.js 点云中显示深度

    I have a 3D scan of a rock that I have represented as a point cloud using Three js and I wanted to more explicitly show
  • 优化 JSON 序列化器/反序列化器作为扩展方法?

    我想尽可能轻松地将任何对象序列化为 JSON 然后简单地将其转换回 type safe 对象 谁能告诉我 FromJSONString 扩展方法中我做错了什么 Edit 为了您的方便 下面是一个完整且功能齐全的扩展方法 如果您发现错误 请告
  • HttpServletRequest.getSession(false):什么时候返回null?

    我想知道什么时候调用时会出现 null HttpServletRequest getSession 假 另外 有关于 HttpSession 的好的教程吗 我想获得以下详细信息 何时 invalidate 后果是什么 我需要检查返回的 Ht
  • 为什么Python中的for循环之前不能使用分号?

    我可以在 Python 中使用分号连接行 例如 a 5 b 10 但为什么我不能对 for 做同样的事情 x a b for i j in enumerate x print i j 因为Python语法不允许这样做 看文档 stmt li
  • 分析Java中的全角或半角字符

    我想分析 char 数组中的全角或半角字符 例如 char 密码 t e s t 思 题 这个char数组中有全角和半角字符 半宽 t e s t 全角 思 题 那么 如何在java中分析char数组的全角或半角呢 多谢 东亚字符的宽度描述
  • jsp - 从 java 字符串设置输入标记 (html) 的值

    我在这里面临一个奇怪的问题 情况是这样的 我正在尝试设置一个值input来自java字符串的标签
  • 递归方法:我们如何生成括号上的所有可能性?

    我们怎样才能在大括号上生成所有可能性 N值已经给了我们 我们要产生所有的可能性 例子 1 如果 N 1 则只有一种可能性 2 如果 N 2 则可能性为 3 如果 N 3 则可能性为 注意 左括号和右括号应该匹配 我的意思是 对于 N 1 无