N Queens 谜题变体的解法
Solution to variation of the N Queens puzzle
我写了一个 python 脚本来解决 N 皇后区难题。我做了一个函数,如果提供 n,它将 return 它通过使用回溯为 n 个皇后找到的第一个解决方案。通过一个小的修改,可以通过穷尽搜索 space 使函数找到并 return 所有解决方案。它适用于 1 到 23 之间的 n。23 之后,开始需要一些时间才能找到一个解决方案。
我想知道是否可以通过扩展女王的 "attack range" 来找到具有进一步约束的解决方案。国际象棋中的皇后可以水平、垂直和对角线攻击。对于我的修改,女王还可以攻击对角线左侧和右侧的相邻方格。由于这种行为,每个皇后必须与下一个皇后相距 4 个方格,而不是正常拼图中的 3 个方格。
下图中,蓝色方块为正常皇后范围,绿色方块代表新的攻击范围:New queen attack range.
我创建了一个考虑到这个新约束的新函数。然而,在我的代码 运行 之后,我一直无法找到任何高达 23 的数字的解决方案,并且在 24 之后需要花费很多时间。
所以我的问题是:有人知道这个问题是否有解决方案吗?有解的最小数是多少?
如果有人以前这样做过,我相信他们的代码会比我的更好更快,但如果需要我可以提供代码。
提前致谢!
有了这些超级皇后,除了普通的 1x1 棋盘之外,您将无法再在 NxN 棋盘上放置 N 个皇后。一种查看方式是在 NxN 板上有 2N-1 条对角线(让我们使用从左下角到右上角)。每个女王将攻击 3 条对角线,除非他们在角落,他们将攻击 2 条对角线。
假设我们在角落里有一个皇后,占据了 2 条对角线。然后例如在 8x8 的棋盘上,我们还有 13 条对角线可供 floor(13/3)
个皇后或 4 个皇后使用。所以我们最多可以在 8x8 的棋盘上有 5 个皇后。我不知道这是否是一个严格的上限。
我写了一个 python 脚本来解决 N 皇后区难题。我做了一个函数,如果提供 n,它将 return 它通过使用回溯为 n 个皇后找到的第一个解决方案。通过一个小的修改,可以通过穷尽搜索 space 使函数找到并 return 所有解决方案。它适用于 1 到 23 之间的 n。23 之后,开始需要一些时间才能找到一个解决方案。
我想知道是否可以通过扩展女王的 "attack range" 来找到具有进一步约束的解决方案。国际象棋中的皇后可以水平、垂直和对角线攻击。对于我的修改,女王还可以攻击对角线左侧和右侧的相邻方格。由于这种行为,每个皇后必须与下一个皇后相距 4 个方格,而不是正常拼图中的 3 个方格。
下图中,蓝色方块为正常皇后范围,绿色方块代表新的攻击范围:New queen attack range.
我创建了一个考虑到这个新约束的新函数。然而,在我的代码 运行 之后,我一直无法找到任何高达 23 的数字的解决方案,并且在 24 之后需要花费很多时间。
所以我的问题是:有人知道这个问题是否有解决方案吗?有解的最小数是多少?
如果有人以前这样做过,我相信他们的代码会比我的更好更快,但如果需要我可以提供代码。
提前致谢!
有了这些超级皇后,除了普通的 1x1 棋盘之外,您将无法再在 NxN 棋盘上放置 N 个皇后。一种查看方式是在 NxN 板上有 2N-1 条对角线(让我们使用从左下角到右上角)。每个女王将攻击 3 条对角线,除非他们在角落,他们将攻击 2 条对角线。
假设我们在角落里有一个皇后,占据了 2 条对角线。然后例如在 8x8 的棋盘上,我们还有 13 条对角线可供 floor(13/3)
个皇后或 4 个皇后使用。所以我们最多可以在 8x8 的棋盘上有 5 个皇后。我不知道这是否是一个严格的上限。