n-queens

    1热度

    2回答

    我写了一个方法,使用递归和回溯来找到N皇后问题的一个解决方案。我现在想要做的是修改这个方法,以便它可以找到所有可能的解决方案。我假设我需要使用2D整数数组来存储所有的解决方案,并且还需要添加一个每次找到解决方案时都会增加的计数器。但我似乎无法绕过我的头,因为一旦找到解决方案并继续回溯找到所有其他可能的解决方案,我可以如何使此方法继续。我认为我必须做的是摆脱“回归真实”;当找到解决方案发生这种情况,

    1热度

    1回答

    我正在做一个8皇后问题的版本,但不使用回溯方法。对于其中一种方法,我必须“对方块进行评分”,基本上我需要找到在盒子中放置一个女王后会变得不可用的细胞数目。我的问题是,我无法让我的代码返回广场的分数。我的循环有什么问题吗? import java.util.ArrayList; public class Chessboard { private int[][] board; publ

    5热度

    2回答

    我正在学习n皇后回溯。有人可以向我解释other_row_pos如何检查对角线吗?我不确定它为什么有效,或者它是如何工作的。从维基采取 - http://en.wikibooks.org/wiki/Algorithm_Implementation/Miscellaneous/N-Queens: bool isSafe(int queen_number, int row_position) {

    -2热度

    2回答

    我实现了深度优先搜索8皇后,它适用于空板,但我需要修改它以接受任何初始状态。我修改了它,但它给出了一个错误。我不知道如何解决这个问题。 这里是我的代码: public class depth { public static int count1=0; public static void eightQueen(int N, int[][] board, int i, int j

    0热度

    1回答

    所以我试图解决n皇后问题。我认为我有一个有效的回溯实现,但我认为我的方法来检查一个板是否有效是关闭的(以及非常低效),但我不明白为什么。任何人都可以看到为什么/提供更好的方法? /** Given an N x N chess board, find placements for N queens on the board such that * none of them are attacki

    -4热度

    1回答

    我在我的程序中有n个皇后的python(有多少种可能的方法将n个皇后放在nxn板上)有问题。似乎我的递归有问题,但我真的很无奈。有人能够弄清楚什么是错的吗? def queens(N): ''' how many ways to place n queens on an NXN board? ''' partial = [] # list representing part

    2热度

    1回答

    我试图解决8-queens puzzle,也被称为n皇后算法。 我的函数应该计算在NxN板上放置N个皇后有多少种合法的方法。 我差点拿到了,但不得不做一些丑陋的补丁来使它工作。 你能帮我解决吗? 对我做了什么简介: 试图找出法律途径究竟有多少集合N皇后在N×N的表, 我试图用一个(N-1)XN情况下递归来解决(去除第一列) 至于没有两个女王被允许在同一列,我使用的列表长度为N. 每个单元格代表一列

    0热度

    2回答

    我已经在C++中实践过了。这是8皇后的解决方案,可输出所有92种可能的解决方案。 C++ code example: What makes this loop so many times? 然后我在C#写的。在这里,但最后我有一个错误。 int[,] state = new int[8, 8]; solve_state(state, 0); // Error: an obje

    -1热度

    1回答

    实现目标状态的一种方法是“在最左边的空列中添加皇后,使其不受任何其他皇后的攻击”。这种方法将有一个2057年的状态空间(也想知道如何计算这个?) 如果我使用深度优先搜索算法(我认为是最合适的)是什么时间复杂?空间复杂性如何? 我很困惑,因为搜索树的发展在深入时大大减少。 O(8 ** 8)对于时间复杂度来说看起来太多了,即使是在最坏的情况下。 感谢

    -1热度

    2回答

    我在编程方面相当新颖,并且一直在通过Daniel Y. Liang的Java简介介绍自我介绍。我完成了第7章(一维数组),并且一直在进行以下练习:寻找8皇后拼图的解决方案。 我还没有学习递归,多维数组,对象或类,所以我想我应该用我所知道的(循环,if-else语句,1-D数组......)来实现程序。我的问题是下面的代码似乎陷入了无限循环,我花了几个小时试图调试它。如果有人可以暗示我应该看的地方,