backtracking相关内容

固定值不在列和行上重复

我想在R中创建一个矩阵,该矩阵具有一定数量的变量(例如1到10).这些变量应在行和列上随机分配,但BUT不应在任何一个中重复(因此,数字1应该在第1行中一次,在第1列中一次)! 例如: 1,2,3,4,5,6,7,8,9,10 2,3,4,5,6,7,8,9,10,1 3,4,5,6,7,8,9,10,1,2 4,5,6,7,8,9,10,1,2,3 5,6,7 ..
发布时间:2020-05-07 18:56:45 其他开发

查找是否可以从字符矩阵中获得字符串

给出一个由字符和字符串组成的矩阵,确定是否可以从矩阵中获得字符串.从矩阵中的每个字符,我们可以向上/向下/向右/向左移动.例如,如果矩阵[3] [4]为: o f a s l l q w z o w k 并且字符串为follow,则该函数应返回true. 我能想到的唯一方法是回溯算法,该算法搜索单词是否可能.还有其他更快的算法可以解决这个问题吗? 并假设我有很多查询(查找是 ..
发布时间:2020-04-27 04:02:31 其他开发

Sudoku生成器的递归解决方案

我正在尝试编写一个算法,用Java或Javascript创建合法的数独板。既不工作,也不完全确定原因。 基本上,两个程序中的问题是x或y的增加量超过它应该增加(跳过广场)。我不能为我的生活弄清楚这是怎么回事。如果需要,我可以提供完成JS解决方案的HTML。 我最好的猜测是它与我如何使用递归创建堆栈有关,但是据我所知,它应该工作。 在我的旧代码中有一个不正确的for循环,我知道这一点。 ..
发布时间:2019-04-27 15:24:36 Java开发

Crypt Kicker算法和解决方案,出了什么问题?

问题描述: Crypt kicker算法是一种众所周知的加密算法,但不太安全。此UVa问题是基于此方法解密行。问题陈述如下: 843 Crypt Kicker 常见但是加密文本的不安全方法是置换字母表中的字母。也就是说,在文本中,字母表中的每个字母始终被其他字母替换。为了确保加密是可逆的,没有两个字母被相同的字母替换。您的任务是解密几个编码的文本行,假设每行使用一组不同的 替换 ..
发布时间:2019-01-02 10:24:29 Java开发

用于将字符串与通配符模式匹配的递归函数

所以我一直在努力解决这个任务,只是无法得到它。 以下函数接受2个字符串,第2个(不是第1个) )可能包含 * 的(星号)。 * 是替代一个字符串(空,1个字符或更多),它可以出现(仅在s2中)一次,两次,更多或根本不显示,它不能与另一个 * 相邻( ab ** c ),无需检查。 public static boolean samePattern(String s1,Strin ..
发布时间:2018-12-27 20:02:52 Java开发

解决填字游戏

我有一个填字游戏和一个可以用来解决它的单词列表(单词可以多次或不一次)。给定的填字游戏和单词列表总是有一个解决方案。 我搜索了如何解决这个问题的线索,发现它是NP-Complete。我的最大填字游戏大小是250乘250,列表的最大长度(可以用来解决它的单词数量)是200.我的目标是通过强力/回溯来解决这个大小的填字游戏,这应该是可能的几秒钟(这是我的粗略估计,如果我错了,请纠正我。) ..
发布时间:2018-12-26 13:08:50 Java开发

骑士之旅 - 导致无限循环,我无法弄清楚为什么

我正在尝试使用回溯来解决骑士的旅行问题。我认为我的算法应该有效。我试过但我无法弄清楚它为什么不起作用。它导致无限循环。 但是,如果我注释掉回溯线 solutionBoard [dst.x] [dst.y] = - 1; 它有效! 我只是不明白为什么! 任何帮助将不胜感激。 private int solutionBoard [] [] = new int [8] [8]; ..
发布时间:2018-12-21 20:59:22 Java开发

如何从数组中删除最后一个元素?

现在我正在使用递归回溯,我的任务是找到迷宫中最长的路径,质量表示为用坐标覆盖的字段,并且墙壁的坐标在文件中是酸痛的。 我已经制作了一个解析器来解析输入文件并构建墙,但是我还将这个坐标存储在对象类型Coordinate的数组中,以检查是否可以移动下一段“蛇” “在下一个字段上,然后我创建了这个方法,现在我已经明白我需要一个方法来从数组中删除最后一个坐标,当我使用回溯时,我该怎么办?目标不是使用数组 ..
发布时间:2018-12-17 10:51:25 Java开发

正则表达式模式灾难性回溯

我的旧Java系统中使用了下面显示的正则表达式,最近导致了回溯问题。 通常回溯线程会导致机器的CPU达到上限,并且在重新启动应用程序之前它不会返回。 任何人都可以建议更好的方法来重写这种模式或者一种可以帮助我这样做的工具吗? 模式: ^ \ [(([\\\ {N}] * \] \,\\ \\ [[\ {N}] *)* | [\ {N}] *)\] $ 工作价 ..
发布时间:2018-12-12 19:51:29 Java开发

如何通过此回溯找到第一个解决方案

我正在尝试编写一个只返回第一个可能解决方案的数独求解器。 i设法用void方法打印所有可能的解决方案,但我不能在第一次找到时停止。 我知道首选的方法是切换到布尔方法并返回 true 向上树 - 但我找不到合适的方式来写它。 我尝试的任何方式总是给出编译错误(方法必须返回布尔值)。 public boolean recursiveSolve(int line,int colu ..
发布时间:2018-12-12 18:05:59 Java开发

从一组中查找给出最少量废物的数字

一个集合被传递给下面的这个方法,并且还传入一个条形的长度。解决方案应输出集合中的数字,如果从集合中删除了集合中的某些数字,则会产生最少的浪费。长度。因此,条形长度10,设置包括6,1,4,因此解决方案是6和4,并且浪费是0.我在通过集合回溯的条件有一些麻烦。我也尝试使用浪费的“全局”变量来帮助回溯方面,但无济于事。 SetInt是一个手动制作的集合实现,可以添加,删除,检查该集是否为空并从集 ..
发布时间:2018-12-11 23:11:50 Java开发

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

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

这个正则表达式不应该发生灾难性的回溯

有人可以解释为什么Java的正则表达式引擎会在这个正则表达式中进入灾难性的回溯模式吗?根据我的判断,每次交替都是互相排斥的。 ^(?:[^'\“ \\s〜:/ @#\\ | \\ ^ \\&安培; \\ [\\] \\(\\)\\ \\\\ {\\}] [^ \“\\s〜:/ @#\\ | \\ ^ \\&安培; \\ [\\] \\(\\)\\\\\\ {\\}] * | \“(?: ..
发布时间:2018-11-27 23:50:04 Java开发

用回溯来解释BFS和DFS

深度优先搜索(DFS)是一个$ b $的深度优先搜索: b算法用于遍历或搜索 a树,树结构或图。一个 从根开始(在图例中选择一些 节点作为根节点) ,并且在回溯之前尽可能沿着每个分支探索 。 那么什么是广度优先搜索? “选择开始 节点,检查所有节点 backtracks , 选择最短路径,选择邻居节点 backtracks , 选择最短路径,最后 找到最佳路径, ..

给定n和k,返回第k个置换序列

集合[1,2,3,...,n]总共包含n! 我们得到以下序列(即n = 3): 通过列出和标记所有的排列顺序, “ ”123“ ”132“ ”213“ “231” “312” “321” 给定n和k返回第k个置换序列。 例如,给定n = 3,k = 4,ans =“231” p> 有多种解决方案。但是所有这些都使用阶乘或复杂度大于O(n),如O(n!)。如果您 ..
发布时间:2017-04-03 13:21:24 Java开发

Haskell中没有列表遍历的N-queens

我在网络上搜索了Haskell中的n-queens问题的不同解决方案,但是在O(1)时间里找不到任何可以检查不安全的位置的东西,就像那个保存/对角线的阵列一样,一个用于\对角线。 大多数解决方案,我发现刚刚检查每个新的女王对所有以前的。这样的: http://www.reddit.com / r / programming / comments / 62j4m / nqueens_in_h ..