backtracking相关内容

Prolog如何回答该查询?

likes(alice, sports). likes(alice, music). likes(carol, music). likes(david,animals). likes(david,X) :- likes(X,sports). likes(alice,X) :- likes(david,X). ?- likes(alice,X). 几天来我一直在尝试学习序言,当我尝试这个问题时 ..
发布时间:2020-07-12 18:52:46 其他开发

如何通过回溯和递归来解决数独?

我之所以创建这个新线程,而不是仅仅阅读之前针对这个特定问题的答案,是因为我觉得我只是不完全理解其背后的全部想法.我似乎无法理解整个回溯概念.因此,我需要完全了解回溯,然后解决特定的数独问题. 到目前为止,我了解的是,回溯是一种可以回溯的技术,例如,如果人们发现在当前状态之前做出的决定导致了死胡同,则该回溯是一种递归流程.因此,您返回尝试其他方法,然后再次继续. 因此,在我的数独示例中, ..
发布时间:2020-07-05 19:36:12 Java开发

如何解决计划中的N个皇后?

我被困在扩展的练习28.2如何设计程序.我使用的是真值或假值向量来表示板子,而不是使用列表.这是我无法使用的内容: #lang Scheme (define-struct posn (i j)) ;takes in a position in i, j form and a board and ; returns a natural number that represents th ..
发布时间:2020-07-01 20:33:58 其他开发

解决n皇后难题

我刚刚解决了python中的nqueen问题.该解决方案输出了将n个皇后放在nXn棋盘上的解决方案总数,但是在n = 15的情况下进行尝试需要一个多小时才能得到答案.任何人都可以看一下代码,并给我一些加快该程序的技巧吗……python新手. #!/usr/bin/env python2.7 ################################################## ..

使用回溯(而非DFS)背后的直觉

我正在解决LeetCode.com上的单词搜索问题: 给出一个2D板和一个单词,找出单词是否存在于网格中。 该单词可以由顺序相邻的单元格的字母构成,其中“相邻”单元格是水平或垂直相邻的单元格。相同的字母单元不得重复使用。 我在在线帮助下编写的解决方案如下: class解决方案{ public: //将其与最大岛屿面积进行比较: //它们的“外观”相似,但是此方法 ..
发布时间:2020-06-03 21:57:43 C/C++开发

BackTracking功能无法正常工作

我正在尝试在C中使用BackTracking解决以下问题,但我不知道如何从这里继续... 问题是:从城市A到城市B的道路长度相比而言并不相同到从城市B到城市A的道路。 从同一来源城市返回到它的路(直接)为0。 克里斯注意到从A到B的最短道路并不总是直接两个城市之间的一个。 您将需要帮助Chris查找最短路径。 编写一个函数,该函数在给定矩阵NxN的情况下检查最短地图,该矩阵存储道路长 ..
发布时间:2020-06-03 21:47:18 其他开发

带有后退功能的钉接龙解决方案

我目前正在尝试编写一个程序,该程序将能够使用向后跟踪功能来找到游戏钉单人纸牌的解决方案。 我的程序接收一个包含起始板的txt文件。除了solve()函数(包含实际的反向跟踪部分)之外,所有工作都已完成,这在概念上对我来说真的很困难。我已经在纸上进行了一段时间的研究,但我认为我没有取得太大的进步。任何帮助将不胜感激。下面的示例txt文件, * =钉,。 =开仓, 2 =行 3 =列 2 ..
发布时间:2020-06-03 21:40:29 C/C++开发

如何使带有回溯算法的Sudoku求解器返回?

这个周末,我基于回溯算法研究了Sudoku Solver( Ruby测验)。数独加载到由81个整数(9x9网格)组成的数组 sudoku_arr 中,其中0是空白点。有一种 valid?方法可检查 sudoku_arr 是否可以是有效的数独。 官方的回溯算法像这样:在下一个空白点尝试值,检查它是否是有效的数独,如果不是,则将值增加1(最多9),如果有效,则在下一个点尝试第一个值,如果不增加前 ..
发布时间:2020-06-03 21:01:07 其他开发

单跳最多回溯n个楼梯n步

您需要爬上n个台阶的楼梯,然后决定通过跳下台阶进行一些额外的锻炼。一次跳转最多可以覆盖k个步骤。返回您可能要爬上楼梯的所有可能跳序列,按顺序排序。 我的实现显然给了我错误的答案。 def爬升楼梯(n,k): final_res = [] final_res.append(CSR(n,k,[]) ) 返回final_res def CSR(n,k,res):如果n == ..

如何计算回溯算法的时间复杂度?

如何为这些回溯算法计算时间复杂度,并且它们具有相同的时间复杂度?如果不同怎么办?请详细解释,并感谢您的帮助。 1。哈密​​顿循环: bool hamCycleUtil(布尔图[V] [V],int路径[],int pos){ / *基本情况:如果所有顶点都包含在哈密顿循环中* / if(pos == V){ //如果从最后一个包含的顶点到 有一条边// //第一个顶点 if ..

通过递归和回溯找到所有可能的多米诺骨牌链

我正在研究一个挑战,我需要找到线性多米诺骨牌瓷砖的所有可能性。我了解递归的原理,但不了解如何将其转换为代码。如果有人可以用简单的步骤来解释问题(解决方案),然后我可以遵循并尝试对其进行编码。 示例: 标题: [3/4] [5/6] [1/4] [1/6] 可能的链: [3/4]-[4/1]-[1/6]-[6/5] 可以翻转瓷砖。 (切换数字) 解决方案 该过程非常简 ..
发布时间:2020-06-03 19:58:21 Java开发

生成集合的所有分区

对于一组格式为 A = {1,2,3,...,n} 的集合。这称为集合 A 的分区,集合 k 的元素遵循以下定理: a) A 的所有分区的并集为 A b) A 的2个分区的交集是空集(它们不能共享相同的元素)。 例如。 A = {1,2,... n} 我们有以下分区: {1,2,3} {1,2} {3} {1,3} {2} {2,3} {1} {1} {2} {3} ..
发布时间:2020-06-03 19:49:26 其他开发

Python排列递归

我正在尝试使用回溯解决问题,并且需要数字的排列.我有执行此操作的基本算法,但是问题是...结果不是按正常顺序排列. def perm(a,k=0): if(k==len(a)): print(a) else: for i in range(k,len(a)): a[k],a[i] = a[i],a[k] perm(a, ..
发布时间:2020-05-26 19:28:44 Python