backtracking相关内容

通过添加相邻元素使所有元素相等所需的最少步骤

我有一个大小为N的数组A,所有元素都是正整数。在一个步骤中,我可以将两个相邻的元素相加,并用它们的总和替换它们。也就是说,数组大小减少了1。现在,我需要通过执行最少的步骤来使所有元素相同。 例如:A=[1,2,3,2,1,3]。 第一步:合并索引0和1==&>A=[3,3,2,1,3] 第二步:合并索引2和3(新数组的)==>;[3,3,3,3] 因此步骤数为2。 ..

为什么按分号后程序又回到深度递归?

我正在尝试理解分号的功能. 我有这个代码: del(X,[X|Rest],Rest).德尔(X,[Y|尾巴],[Y|休息]):-德尔(X,尾巴,休息).排列([],[]).排列(L,[X|P]):- 德尔(X,L,L1),排列(L1,P). 这是显示给定列表的所有排列的简单谓词. 我在 SWI-Prolog 中使用了内置的图形调试器,因为我想了解它是如何工作的,并且我了解返回参数中 ..
发布时间:2022-01-12 10:19:12 其他开发

你能用纯序言写 between/3 吗?

我一直试图了解如何从 Prolog 谓词中的回溯生成一系列值.内置谓词 between/3 将在回溯时一次生成一个范围内的所有整数,因此如何编写的示例可能对我的任务有所帮助. 我在现有的 Prolog 系统中寻找了一个实现,但是 GNU Prolog 的 between/3 的实现是一个 C 函数,其中的诀窍是它调用了另一个 C 函数“Pl_Create_Choice_Point"这允许它在 ..
发布时间:2022-01-12 10:01:11 其他开发

Java 中的数独求解器,使用回溯和递归

我正在用 Java 为 9x9 网格编写数独求解器. 我有以下方法: 打印网格 使用给定值初始化板 测试冲突(如果相同的数字在同一行或 3x3 子网格中) 一种将数字一个一个放置的方法,需要最多的工作. 在我详细介绍该方法之前,请记住我必须使用递归来解决它,以及回溯(以这里的小程序为例http://www.heimetli.ch/ffh/simplifiedsu ..
发布时间:2021-12-16 09:06:41 Java开发

如何生成多重集的所有排列?

多集是一个集合,其中所有元素可能不唯一.如何枚举集合元素之间所有可能的排列? 解决方案 生成所有可能的排列然后丢弃重复的排列是非常低效的.存在各种算法来直接生成按字典顺序或其他类型排序的多集的排列.Takaoka 的算法是一个很好的例子,但可能 Aaron Williams 的算法更好 http://webhome.csc.uvic.ca/~haron/CoolMulti.pdf ..

处理中的骑士之旅 GUI

我正在使用基本的 gui 处理骑士之旅问题,我想在构成用户 (x,y) 的两个文本字段中输入用户输入,然后在一个文本框中输入,如果解决方案可行,并且另一方面,我写了骑士采用的路径.我的算法工作正常,我在 gui 中遇到了问题.我为 (x,y) 提供了一些默认值,以便我得到正确的输出.但是当我更改的值时(x,y) 在文本字段中,没有发生任何变化.这是主文件,还有另一个事件处理程序文件,在它下面.真诚 ..
发布时间:2021-11-16 22:36:40 Java开发

最小硬币变化问题 - 回溯

我正在尝试以最少的硬币数量解决硬币找零问题使用回溯法. 我实际上已经完成了,但我想添加一些选项,以按单位打印硬币数量,而不仅仅是总数. 这是我下面的python代码. def minimum_coins(coin_list, change):min_coins = 零钱如果 coin_list 发生变化:返回 1别的:对于 coin_list 中的硬币:如果硬币<改变:num_coi ..
发布时间:2021-10-26 18:44:32 Python

回溯 8 Queens Python 问题

我已经开始使用 Python 中的回溯解决 8 个皇后问题.一切都很好&美好的.它甚至打印出了第一个答案.然而,它坚持第一次回溯尝试. 任务听起来是这样的: 实现一个 Python 函数来解决 8 个皇后的难题.8皇后拼图包括在棋盘上放置8个皇后,因此,没有一个皇后可以捕获任何其他皇后.请注意,皇后可以向任何方向正交或对角移动. 你应该实现一个函数 solve() ,当它被调用时 ..
发布时间:2021-10-26 18:43:07 Python

递归回溯如何工作?电脑爱好者数独解算器

我对回溯感到很困惑,因为当递归调用返回时,您是否不会通过将网格替换回零来替换找到的解决方案.因此,即使您找到了解决方案,它也不会被删除,因为在调用 solve 函数后,您将通过将值替换回零来取消您所做的工作.我知道您正在回溯,但在包含所有正确值的最终递归调用中,您不只是将所有内容都替换为 0? # grid = ..... # 定义为全局值,# 一个包含 9 个列表的列表,每个列表有 9 个长度 ..
发布时间:2021-07-05 19:20:50 Python

8皇后解决方案Java代码的说明.

我找到了一个8皇后解决方案,可以在Eclipse中进行编译和运行.我相信该解决方案遵循回溯方法,并且工作的实质是在 solution 和 unsafe 函数中完成的,但是我很难理解其中的代码路径.有人可以帮我理解这段代码在做什么. 我的来源- http://rosettacode.org/wiki/N-queens_problem#Java我对照其他来源发布的92个解决方案验证了输出.看起来 ..
发布时间:2021-04-14 19:07:53 Java开发

骑士之旅无限循环

我想测试我是否了解回溯,所以尝试了“骑士问题".但是我的代码似乎不起作用.它似乎发生了无限循环,因此也许我对路径的跟踪没有很好地执行.所以我想知道我对这个问题的理解. #include#include#include#定义N 8int board [8] [8] = {-1,-1,-1,-1,-1,-1,-1,-1,//1-1, ..
发布时间:2021-04-14 19:07:50 其他开发

为什么数独回溯被卡住了?

我正在写一个数独回溯解算器,它卡住了,我不明白为什么.我认为我的递归调用很好.我想念的是什么? 从input.txt文件中读取输入,其中网格的初始布局在一行中: input.txt: 004020000201950070090004852005490001006000900800051300958100020010072608000080500 编辑:我的意思是“卡住"是指尚未 ..
发布时间:2021-04-14 19:07:46 Java开发

我如何在React中div标记内的div标签内的数组元素之间循环

所以,我有一个巨大的二维数组.每个2d数组基本上都是我的回溯算法找到数独解决方案的一个步骤.我想找到一种在表格中显示每个步骤的方法.我已经有了CSS等.我只需要一种方法就可以在同一张表中一个接一个地循环执行所有步骤.像那些动画一样,解释了回溯是如何发生的. 有没有办法做到这一点?我认为您不需要任何代码,但是我将在控制台中粘贴2d数组数组的图片[我想您可以将其称为3d数组]. PS:另外 ..