cost 80 ms
如何修复我的 prolog 代码中的以下错误以解决皇后问题 - How do I fix the following error in my prolog code for the queen problem

我无法弄清楚为什么我的代码不起作用。 我希望代码为 NxN 棋盘上的 N 个皇后提供可能的组合。 对于 4x4 棋盘,可能的组合是 [2, 4, 1, 3]。 每个数字代表女王被放置的列,当我们 go 遍历列表时,我们逐行 go 直到我们到达最后一个。 所以“2”将放在第 2 列的第一行,“4”将放 ...

N-Queens Python 解决生成不正确 output - N-Queens Python solution generating incorrect output

我正在尝试解决 n-queens 问题。 我为这个问题写了一个解决方案如下: 上面的代码使用递归回溯来解决n皇后问题。 placeQueens function 将棋盘组合直接附加到 ans 列表中,当所有皇后都分配了一行但是当我尝试打印 ans 时,所有的地方都标记为零。 例如,对于 n=4: ...

n个皇后放在k*k的棋盘上? - N queens placed in k*k chessboard?

我的问题应该是 N 皇后问题的变体: 是否有一种算法可以打印在 ak*k 棋盘中放置 N 个皇后的所有方法? 我曾尝试修改 N-queens 问题中使用的 DFS 方法,如下所示,但很快意识到我只能搜索棋盘中第一个“queen_number”行。 如果有更好的方法来完成这个任务,我也有兴趣学习一下 ...

算法 - nQueens 的时间复杂度 - Algorithm - Timecomplexity of nQueens

我有这个问题可能很基本,但我发现很难理解。 如何确定 nQueens 的时间复杂度。 在某些帖子中,它说它的 n,因为在 (4*4) 矩阵中。 每个皇后得到一行,当皇后向下移动时,列选项会减少 (n * n-1 * n-2..,),这很好。 但是在递归算法中,我们传递 rowIndex 并且对于每个 ...

逆八皇后问题怎么做(如果一对互相击中)P2 - How to do the reversed eight queens problem (if a pair hit each other) P2

可以在 8×8 棋盘上放置 8 个皇后,这样两个皇后就不会相互威胁。 因此,它要求没有两个皇后共享相同的行、列或对角线。 给定棋盘上 8 个皇后的位置。 如果有一对皇后违反此规则,则打印 YES,否则打印 NO。 输入由八个坐标对组成,每行一对,每对给出标准棋盘上皇后的位置,行和列编号从 1 到 ...

在 N-Queens 问题中检测解数中的错误 - Detecting error in Number of Solutions in N-Queens Problem

编程问题描述 n皇后谜题是在nxn棋盘上放置n皇后以使没有两个皇后相互攻击的问题。 给定一个整数n ,返回n-queens 谜题的不同解的数量。 1 ≤ n ≤ 9是测试用例的约束。 [取自这里] 我的尝试 我尝试使用位掩码解决问题。 简而言之,我们尝试所有可能的组合,并在无法解决 ...

N 皇后和检查对角线 - N queens and checking for diagonals

我有一个任务,我必须解决 n 皇后问题。 皇后的位置必须是随机的,这就是为什么我有一个洗牌 function。 我们的老师希望我们提示用户输入 n ,然后 n 将初始化一个 int[n] 数组。 然后我必须调用我的洗牌 function 来洗牌并检查数组,直到列索引 Q1 = q1,q2,qn 中的 ...

列表值在保存后更改 - List values change after saving them

我目前正在编写一个八皇后问题解决算法。 算法不是问题。 它是解决方案的存储。 我正在尝试将 append 解决方案(解决方案存储在列表列表中)添加到列表中,但是在保存解决方案并继续执行算法后,保存列表的值会不断变化。 我想保存的列表和我正在更改的列表仍然以某种方式“连接”,但我不知道如何。 有人知道 ...

跟踪在 Python 中调用了递归 function 的次数 - Keep track of how many times a recursive function has been called in Python

我有一段 Python 代码,它实现了一个递归回溯算法,用于解决国际象棋中著名的 N 皇后问题。 在哪里 问题: 我想跟踪调用递归回溯算法的次数。 我的尝试: 我在代码中添加了一个计数器变量,这样 但是对于N = 4 ,output 是 这表明我的尝试是不正确的。 function 被调用了 9 ...

使用回溯生成所有可能排列的时间复杂度(2 个解决方案的比较) - Time complexity of generating all possible permutations using backtracking (comparison of 2 solutions)

方法一: https://www.geeksforgeeks.org/write-ac-program-to-print-all-permutations-of-a-given-string/在这里,我们可以看到递归方程为 T(N) = N * T (N-1) + c 所以最终的时间复杂度为 = ...

非限制形式到限制形式(CNF) - Unsrestricted form to restricted form(CNF)

我需要将不受限制的命题公式转换为 CNF,然后转换为 3-SAT。 我知道将公式转换为联合范式的重写规则 但我不明白我如何找到关于概念的现实生活示例。 你能帮忙实施吗? 我找不到现实生活中的例子。 谢谢你。 实际上我试图证明不受限制的公式可以转换为受限制的forms,两者的解决方案是相同的。 所以 ...

如何获得 N 个皇后验证器的更好时间复杂度 - How to get better time complexity of N queens validator

我们如何才能降低这个 NxN 皇后矩阵验证器解决方案的时间复杂度? 当我检查矩阵的每一行、每一列和每个对角线时,我就有了这个解决方案。 如果每行和每列恰好有 1 个皇后,并且矩阵不超过 1 个皇后,则 output 为真。 该解决方案有效,但我认为这是蛮力。 ...

3皇后问题有通用的公式吗? - Is there a general term formula for 3 queens problem?

具体问题描述为:在M列N行的棋盘上放置3个Q,如何确定没有两个Q处于进攻位置的方式数? 请注意,M 不等于 N,并且 M/N 大于 C 语言中的Integer ,因此无法使用 DFS/BFS 等经典计算机算法(出于时间和内存复杂性考虑)来解决此问题。 我猜这个问题可以通过排列或组合的数学方法来计 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM