14得票4回答
有没有任何算法可以解决任何传统数独谜题,而不需要猜测(或类似的技巧)?

是否有任何算法可以在不猜测的情况下解决任何传统数独难题? 这里的“猜测”指尝试一个候选数字,看它能填多远,如果发现矛盾,则回溯到猜测步骤并尝试另一个候选数字;当所有候选数字都用完了但没有成功时,则回溯到上一个猜测步骤(如果有的话;否则谜题证明无效),等等。 编辑1:感谢您的回复。 传统数...

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

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

19得票6回答
数独难度等级评定

我正在用Javascript编写一个数独游戏,只是为了好玩。 一切都运行正常,每次都会生成一个完整的解决方案。 我的唯一问题是,这是阻止我发布项目的原因 的是我不知道如何为难度级别评分。我到处找过资料, 在论坛上发布过帖子等等。我不想自己编写算法,这不是这个项目的重点,而且,对于我这样的非数...

9得票2回答
使用遗传算法解决数独问题

我承担了使用遗传算法创建数独求解器的任务。 初始化:将给定值存储在每个染色体中,然后随机生成值,使得每行都是1到9之间值的有效排列。 适应度:由每行、每列和正方形格子中"不正确"的值的数量加在一起来确定。 适应度函数:典型的轮盘选择。 选择:随机选择,但使用轮盘选择进行加权。 交叉:...

7得票4回答
构建一个高效的数独求解器

是的,我知道这并不新鲜,已经有很多问题了(它甚至有自己的标签),但我想单独使用Java创建数独求解器,目的是训练自己编写更高效代码的能力。 在程序中完成这个任务最简单的方法可能是使用大量的循环遍历每一列和每一行,收集每个单元格的可能值,然后排除只有一个可能性的单元格(无论它们是否只包含一个数...

9得票2回答
数独谜题,其中包含平方数的盒子

两天前,我得到了一道数独问题,尝试用Python 3解决。已经告知有解,但不确定是否存在多种解决方案。 问题如下:一个9x9的数独网格完全为空。然而,它包含彩色框,并且这些框内数字的总和必须是平方数。除此之外,普通的数独规则也适用。 问题在于不是解决数独难题,而是生成一个可行的拼图,满足彩...

8得票1回答
判断JavaScript中数独是否可解

这是一个来自Pramp的问题。我需要确定数独是否可解(不像LEETcode问题,我只需要确定一个棋盘是否有效)。 以下是我的JavaScript代码,使用递归。我遵循了Pramp建议的逻辑,创建了一个helper函数getCandidates()来查找所有可以放入空格的候选数。然后在实际的s...

9得票2回答
数独回溯解法算法

我想实现一个使用暴力回溯算法来解决数独网格的简单算法。我遇到的问题是,在我的实现中,我为Sudoku类包含了两个实例变量,称为row和col,它们对应于表示数独网格的二维数组中空单元格的行和列。 当我的solve()方法执行时,它首先检查是否有任何空单元格,如果有,则谜题已经完成。否则,该方...

7得票14回答
Python中的数独检查器

我正在尝试用Python创建数独检查器: ill_formed = [[5,3,4,6,7,8,9,1,2], [6,7,2,1,9,5,3,4,8], [1,9,8,3,4,2,5,6,7], [8,5,9...

10得票6回答
数独回溯算法

首先声明,这是一项大学作业,我不是要求别人替我编写代码,我只需要指点方向。 :) 好的,我需要编写一个算法来解决任意大小(可解决)数独棋盘。我已经编写了一个递归函数,可以快速地解决任何9x9的棋盘(~1ms),但当我尝试解决更大的棋盘(16x16)时,它会遇到困难...我有一个测试已经进行了...