17得票5回答
在Haskell中实现N皇后问题而不进行列表遍历

我在网上搜索了不同的方案来解决Haskell中的n-皇后问题,但是没有找到任何一种可以在O(1)时间内检查不安全位置的解决方案,就像你保留一个数组来存储/对角线和一个数组来存储\对角线的那个方案。我发现大多数解决方案只是将每个新皇后与之前的所有皇后进行比较。类似于这样的方式: http://w...

12得票3回答
在Python中实现Prolog Unification算法?回溯

我正在尝试实现统一,但遇到了问题。虽然已经有了许多例子,但它们只是使问题更加混乱。我感到越来越困惑而不是受到启发: http://www.cs.trincoll.edu/~ram/cpsc352/notes/unification.html https://www.doc.ic.ac.uk...

22得票1回答
回溯搜索和暴力搜索的区别

我目前正在学习算法课程,但是我对暴力搜索和回溯的确切定义有些困难。据我了解,以下内容是正确的: 暴力搜索 (BFS) 是一种算法,它计算问题的每个可能解决方案,然后选择一个符合要求的方案。 显式 约束条件为每个选择提供了可能的取值范围(例如,选择1-3仅限于{1,2},选择4仅限于{3,4...

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+:/的回溯是正确的。 但是我不明白其中的区别。 我错了吗?

25得票6回答
Java中的数独求解程序,采用回溯和递归算法

我正在使用Java编写一个9x9网格的数独求解器。 我有以下方法: 打印网格 用给定的值初始化棋盘 检测冲突(如果相同的数字在同一行或3x3子网格中) 一个逐个放置数字的方法,这需要最多的工作。 在详细讨论该方法之前,请记住我必须使用递归来解决问题,以及回溯(请参考此处的应用程序ht...

10得票6回答
为什么这被称为回溯算法?

我在维基百科和谷歌上查找过,但我无法理解“回溯算法”的含义。我从《破解面试》中看到了这个解决方案,并想知道为什么它是一种回溯算法?

26得票1回答
解释BFS和DFS在回溯方面的含义

关于深度优先搜索的维基百科: 深度优先搜索(DFS)是一种用于遍历或搜索树、树结构或图的算法。在图的情况下,从根节点开始(选择某些节点作为根),沿每个分支尽可能远地探索,然后回溯。 那么什么是广度优先搜索? “一种算法,选择一个起始节点,检查所有节点并回溯,选择最短路径,选择相邻节点并回...

7得票3回答
如何防止Prolog无限制地检查不可能的解决方案?

假设以下程序: nat(0). nat(s(N)) :- nat(N). /* 0+b=b */ plus(0,B,B) :- nat(B). /* (a+1)+b = c iff a+(b+1)=c */ plus(s(A),B,C) :- plus(A,s(B),C). 它非常适用...

28得票7回答
在图像上布置标签的建议算法/方法

给定一张图片和一组标签,这些标签附着在图片上的特定点上。我正在寻找一种算法,将标签布局到图片的两侧,并满足一定的约束条件(每侧标签数量大致相同,标签大致等距离,将标签与它们各自的点连接起来,不交叉)。 现在,一个近似的解决方案通常可以通过按Y坐标(它们所指向的点的坐标)对标签进行排序来很容易...