10得票3回答
使用递归和回溯来生成所有可能的组合

我正在尝试实现一个类,该类将生成所有可能的无序n元组或组合,给定元素数量和组合大小。 换句话说,在调用以下内容时:NTupleUnordered unordered_tuple_generator(3, 5, print); unordered_tuple_generator.Start();...

13得票2回答
编程练习(安装管道)的回溯解决方案

我正在审查一道来自本地编程竞赛的编程问题。 您可以在此处下载这个问题(pdf文件)。虽然是荷兰语,但图片会帮助理解。 输入一个m * m的网格,其中有些地方有管道,有些地方缺失(用问号表示)。 剩下的管道必须被放置在网格中,以便与其他管道连接起来。 每个管道都表示为一个字母(请参见第2页...

9得票1回答
回溯算法范式:是否可以不使用递归来实现?

示例:使用回溯法解决数独 如何在没有递归的情况下进行回溯 - 使用循环?我只找到了在调用backtrack()本身时的解决方案。

7得票1回答
当我的正则表达式执行且无法匹配输入时,浏览器选项卡会卡住。

问题是这样的。我创建了一个带有验证的输入字段,这是有效数据: 1-12、14、16、22、25-35、41、49、55-90 1230-1992、2001-2099、9931 1-2 13 1、3、4、5、6、10 全部 基本上,任何这些数字的组合(范围、逗号分隔的范围、逗号分隔的数字...

34得票9回答
回溯和递归有什么区别?

回溯和递归有什么区别?这个程序是如何工作的?void generate_all(int n) { if(n<1) printf("%s\n", ar); else{ ar[n-1]='0'; //fix (n)th...

16得票2回答
为什么 /\w+:/ 和 /\S+:/ 处理回溯不同?

我使用regex101分析了这两个正则表达式。 我认为/\S+:/的回溯是正确的。 但是我不明白其中的区别。 我错了吗?

7得票3回答
在递归下降解析器中实现"cut"

我正在使用Python实现PEG解析器生成器,在这方面我已经取得了一些成功,但是在“cut”功能上却遇到了问题,熟悉Prolog的人应该知道这个功能。 这个想法是,在解析到“cut”(!)符号后,就不应该尝试同一级别的其他备选项。 expre = '(' ! list ')' | atom...

11得票2回答
什么时候应该使用正则表达式回溯控制,例如(*PRUNE)?

一些正则表达式引擎支持与回溯相关的动词: (*PRUNE), (*SKIP), (?{doSomeCode();})等等。我已经从参考-这个正则表达式是什么意思?了解了这些动词的作用。 我倾向于认为这些动词有点神秘,或者至少是一种更低级别编程的不必要步骤。除了需要(*PRUNE)之外,是否在...

12得票3回答
如何使用选择单子(Select monad)来解决 N 皇后问题?

我正在试图理解Select单子的工作原理。显然,它是Cont的近亲,可用于回溯搜索。 我有一个基于列表的解决n皇后问题的方案:-- All the ways of extracting an element from a list. oneOf :: [Int] -> [(Int,[In...

39得票3回答
在LeetCode中,AC是什么意思?它是否像DP一样是一种算法技术?

我在各种在线编程论坛上发现了一种称为“AC”的技术,它看起来像“动态规划”或“回溯”,但不确定它是什么以及如何使用。有人有建议吗?