草庐IT

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

我正在用Java为9x9网格编写数独求解器。我有以下方法:打印网格使用给定值初始化板测试冲突(如果相同的数字在同一行或3x3子网格中)一种逐一放置数字的方法,这需要最多的工作。在我详细介绍该方法之前,请记住,我必须使用递归来解决它,以及回溯(以此处的小程序为例http://www.heimetli.ch/ffh/simplifiedsudoku.html)另外,我正在通过垂直向下移动来解决这个数独问题,从左上角开始,通过第一列,然后通过第二列,等等。到目前为止,我有以下内容:publicbooleanplaceNumber(intcolumn){if(column==SUDOKU_SI

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

我正在用Java为9x9网格编写数独求解器。我有以下方法:打印网格使用给定值初始化板测试冲突(如果相同的数字在同一行或3x3子网格中)一种逐一放置数字的方法,这需要最多的工作。在我详细介绍该方法之前,请记住,我必须使用递归来解决它,以及回溯(以此处的小程序为例http://www.heimetli.ch/ffh/simplifiedsudoku.html)另外,我正在通过垂直向下移动来解决这个数独问题,从左上角开始,通过第一列,然后通过第二列,等等。到目前为止,我有以下内容:publicbooleanplaceNumber(intcolumn){if(column==SUDOKU_SI

c++ - 数独回溯算法

首先,我要声明这是一项大学作业,所以我并不是要别人为我编写代码,我只需要指出正确的方向即可。:)好的,所以我需要编写一个算法来解决任意大小的任何(可解决的)数独游戏。我已经编写了一个递归函数,可以快速解决任何9x9板(~1ms),但是当我做更大的板(16x16)很难解决它时,它会遇到困难。我已经进行了20分钟的测试,它可以'似乎无法解决。它可以解决简单的16x16拼图,甚至是空白的16x16板,所以我认为问题不是尺寸问题。我认为更可能是算法问题。无论如何,这是我程序的基本逻辑..我有一个3Dvector,用于存储每个正方形的可能值当一个值被放置在一个正方形中时,它会从它所在的周围正方形

java - 逻辑求解算法(Java 数独)

我的逻辑求解算法有问题。它很好地解决了具有大量提示的谜题,它只是解决了少于45条线索的谜题。这是求解的算法。Immutable是一个boolean值,用于确定该值是否可以更改。cell[row][col].possibleValues是一个名为SudokuCell的类中的LinkedList,它存储该网格元素可能的值。grid.sGrid是拼图的主要int[][]数组。removeFromCells()是一种从网格的行、列和象限中删除值的方法。该代码进一步提供。第二个for循环仅用于检查单个解决方案。我决定避免递归,因为我真的无法理解它。这种方法目前看来效果很好。publicboole

java - 解决数独的多线程算法?

我有一个家庭作业,要编写一个多线程数独求解器,它可以找到给定谜题的所有解决方案。我之前写过一个非常快速的单线程回溯数独求解器,所以我在数独求解方面不需要任何帮助。我的问题可能与不真正理解并发性有关,但我看不出这个问题如何从多线程中受益。我不明白如何在不维护拼图的多个副本的情况下同时找到同一问题的不同解决方案。鉴于这个假设(请证明它是错误的),我看不出多线程解决方案如何比单线程更有效。如果有人能给我一些关于算法的入门建议,我将不胜感激(请不要代码...)我忘了说,要使用的线程数是作为程序的参数指定的,所以据我所知,它与拼图的状态没有任何关系...此外,可能没有唯一的解决方案-有效的输入可

python - 使用 OpenCV 和 Python 查找数独网格

我正在尝试使用OpenCV检测数独游戏中的网格,但我在最后几步中遇到了问题(我猜)。我正在做的是:缩小图像模糊它应用高通滤波器(双边)使用自适应阈值对图像进行阈值处理一些膨胀和腐eclipse所有这一切给了我以下图像:从现在开始,我需要检测网格,我找到了一些方法来做到这一点,但没有一种方法让我有足够的信心。第一个是使用Hough变换查找直线,但我发现了很多伪直线。另一种是使用连接组件,这给了我最好的结果。我试图实现RANSAC作为获得正确质心的一种方式,但我没有得到好的结果,也需要一段时间才能得到答案(“一会儿”不到2秒,但后来我想在实时视频)。知道如何做到这一点吗?我的意思是,我怎样

python - 解决数独的算法

我想用Python编写代码来解决数独难题。你们有什么想法可以用于此目的的好算法吗?我在网上的某个地方读到一个算法,该算法通过用所有可能的数字填充整个框来解决它,然后将已知值插入相应的框中。从已知值的行和列中删除已知值。如果你们知道得更好算法比这个请帮我写一个。我也很困惑我应该如何从用户那里读取已知值。通过控制台一个一个输入值真的很难。除了使用gui之外,还有什么简单的方法吗? 最佳答案 这是我的python数独解算器。它使用简单的回溯算法来解决这个难题。为简单起见,没有完成输入验证或奇特的输出。这是解决问题的最低代码。算法查找给定单

asp.net - CSS - 创建 9x9 数独网格的最佳方法是什么?

我正在做几个元素来改进我的HTML和CSS。其中之一是简单的数独求解器。我需要创建一个网格来放置标签或文本框。我想要一个与此question中的网格图像完全一样的网格布局.实现此目标的最佳方法是什么?CSS……还是表格?我将如何着手创建它? 最佳答案 如果是表格数据,可以用表格。如果您想坚持使用DIV,您可以通过为每个父立方体和子立方体设置特定的宽度/高度值并简单地向左/向右浮动来轻松做到这一点。如果您决定不使用明确的宽度/高度值,请务必使用clearfix来防止内容流过它们的同级标签。#sudoku{width:297px;hei

Golang 数独算法不起作用

我是Golang的新手,我正在尝试用回溯算法做一个数独游戏。但是当我运行我的程序时,没有错误,但它只显示网格不完整,这里是空的情况是我的代码:packagemainimport"fmt"varsudoku=[9][9]int{{9,0,0,1,0,0,0,0,5},{0,0,5,0,9,0,2,0,1},{8,0,0,0,4,0,0,0,0},{0,0,0,0,8,0,0,0,0},{0,0,0,7,0,0,0,0,0},{0,0,0,0,2,6,0,0,9},{2,0,0,3,0,0,0,0,6},{0,0,0,2,0,0,9,0,0},{0,0,1,9,0,4,5,7,0},}fu

python - Python 中最短的数独求解器 - 它是如何工作的?

我正在玩自己的数独求解器,并正在寻找一些指向良好和快速设计的指针,当我遇到这个时:defr(a):i=a.find('0');~iorexit(a);[min[(i-j)%9*(i/9^j/9)*(i/27^j/27|i%9/3^j%9/3)ora[j]forjinrange(81)]orr(a[:i]+m+a[i+1:])formin'%d'%5**18]fromsysimport*;r(argv[1])我自己的实现解决数独问题的方式与我在脑海中解决数独问题的方式相同,但这个神秘的算法是如何工作的?http://scottkirkwood.blogspot.com/2006/07/s