yinda_peng 发表于 2023-5-24 23:01:20

经典八皇后问题(python)

本帖最后由 yinda_peng 于 2023-5-24 23:04 编辑

八皇后问题(英文:Eight queens),是由国际象棋棋手马克斯·贝瑟尔于1848年提出的问题,是回溯算法的典型案例。
问题表述为:在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。如果经过±90度、±180度旋转,和对角线对称变换的摆法看成一类,共有42类。计算机发明后,有多种计算机语言可以编程解决此问题。

def solveNQueens(n):
    def DFS(queens, xy_dif, xy_sum):
      p = len(queens)
      if p == n:
            result.append(queens)
            return None
      for q in range(n):
            if q not in queens and p-q not in xy_dif and p+q not in xy_sum:
                DFS(queens+, xy_dif+, xy_sum+)
    result = []
    DFS([], [], [])
    return [[ "."*i + "Q" + "."*(n-i-1) for i in sol] for sol in result]#列表推导式创建二维列表


n = int(input("请输入n的值:"))
count = 0
for solution in solveNQueens(n):
    print('\n'.join(solution))
    count += 1
    print()#空行分隔
print("总共有{}个解".format(count))


我之前把自己在知乎的一篇有关代数的文章搬过来了,有兴趣的朋友可以看看https://fishc.com.cn/thread-228674-1-1.html

yinda_peng 发表于 2023-5-24 23:07:03

@夏季的春秋 @Judie @元豪 @Threebody1 来康康

夏季的春秋 发表于 2023-5-24 23:10:35

来了来了,比c的代码简单好多啊

yinda_peng 发表于 2023-5-24 23:11:20

夏季的春秋 发表于 2023-5-24 23:10
来了来了,比c的代码简单好多啊

我也有C的代码

yinda_peng 发表于 2023-5-24 23:11:51

夏季的春秋 发表于 2023-5-24 23:10
来了来了,比c的代码简单好多啊

不过是抄书上的hhh

歌者文明清理员 发表于 2023-5-24 23:12:00

歌者文明清理员 发表于 2023-5-24 23:13:00

yinda_peng 发表于 2023-5-24 23:07
@夏季的春秋 @Judie @元豪 @Threebody1 来康康

Threebody1是我小号,别叫他{:10_277:}

Threebody1 发表于 2023-5-24 23:13:37

歌者文明清理员 发表于 2023-5-24 23:13
Threebody1是我小号,别叫他

是谁在诋毁我{:10_244:}

yinda_peng 发表于 2023-5-24 23:14:03

歌者文明清理员 发表于 2023-5-24 23:13
Threebody1是我小号,别叫他

因为没加你大号,现在加你

歌者文明清理员 发表于 2023-5-24 23:15:45

Threebody1 发表于 2023-5-24 23:13
是谁在诋毁我

精神分裂症

夏季的春秋 发表于 2023-5-24 23:29:56

币啊,别绝缘啊

isdkz 发表于 2023-5-24 23:45:48

{:5_106:}

Judie 发表于 2023-5-25 04:50:57

interesting question!

兢兢 发表于 2023-5-25 05:24:04

递归越简单,越难理解

sfqxx 发表于 2023-5-25 07:29:20

{:5_108:}

{:10_275:}

落花盈满绣! 发表于 2023-5-25 08:22:33

{:5_106:}

kerln888 发表于 2023-5-25 09:06:10

看一看

元豪 发表于 2023-5-25 18:29:05

学习深度优先搜索算法时学习的{:10_256:}

zhangjinxuan 发表于 2023-5-25 19:46:36

Python,有意思有意思{:10_256:}

赫尔曼·迈耶- 发表于 2023-5-28 16:35:32

666
页: [1] 2
查看完整版本: 经典八皇后问题(python)