返回顶部
首页 > 资讯 > 后端开发 > Python >怎么在python中解决n皇后问题
  • 810
分享到

怎么在python中解决n皇后问题

2023-06-14 05:06:18 810人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

这期内容当中小编将会给大家带来有关怎么在python中解决n皇后问题,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。import copydef check(A,x,y): &

这期内容当中小编将会给大家带来有关怎么在python中解决n皇后问题,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

import copydef check(A,x,y):  B=[]  flag=True  for i in range(len(A)):    for j in range(len(A)):      if A[i][j]==1:        B.append([i,j])  for m in range(len(B)):    p = B[m][0]    q = B[m][1]    if y == q or (x-p)==abs(y-q):      flag=False  return flagdef queen(n):  A=[[0 for __ in range(n)] for _ in range(n)]  answer=[]  for _ in range(n):    stack=[[0,_,A]]    while stack:      judge = 0      obj=stack.pop(-1)      x=obj[0]      y=obj[1]      array=obj[2]      flag=check(array,x,y)      if not flag:        while 1:          if check(array, x, y):            break          else:            if stack:              b=stack.pop(-1)              x=b[0]              y=b[1]              array=b[2]            else:              judge=1              break      if judge==1:        break      array=copy.deepcopy(array)      array[x][y]=1      for m in range(n):        if m!=y and m!=y-1 and m!=y+1 and x+1<n :          stack.append([x+1,m,array])      # print(array)      for j in range(len(array[n-1])):        if array[n-1][j]==1:          answer.append(array)  print(len(answer))queen(8)

answer中存放的就是最后所有的可行组合
当前解决的是8皇后问题
我的想法是用dfs 在每次搜索时 带上该次搜索需要摆放的位置 x,y,以及待摆放的棋盘 即[x,y,A]
这样不会导致所有的操作都在一个矩阵上进行

上述就是小编为大家分享的怎么在Python中解决n皇后问题了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网Python频道。

--结束END--

本文标题: 怎么在python中解决n皇后问题

本文链接: https://lsjlt.com/news/268267.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么在python中解决n皇后问题
    这期内容当中小编将会给大家带来有关怎么在python中解决n皇后问题,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。import copydef check(A,x,y): &...
    99+
    2023-06-14
  • python 非递归解决n皇后问题的方法
    复杂度可能高了点- - 也没太注意 我想了好久 也找了好久 没看到什么能够用python解决n皇后问题而且不调用递归的 因为我不太能理解递归(尤其是到n层时) 智商受限- - i...
    99+
    2024-04-02
  • 怎么使用Java递归回溯解决八皇后的问题
    这篇文章主要介绍“怎么使用Java递归回溯解决八皇后的问题”,在日常操作中,相信很多人在怎么使用Java递归回溯解决八皇后的问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Java递归回溯解决八皇后...
    99+
    2023-06-25
  • 如何使用C语言解决八皇后问题
    这篇文章主要讲解了“如何使用C语言解决八皇后问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用C语言解决八皇后问题”吧!前言八皇后问题是一个古老而著名的问题。该问题是19世纪著名的数...
    99+
    2023-06-08
  • Java使用递归回溯完美解决八皇后的问题
    八皇后问题 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即:...
    99+
    2024-04-02
  • Java怎么通过递归算法解决迷宫与汉诺塔及八皇后问题
    本篇内容介绍了“Java怎么通过递归算法解决迷宫与汉诺塔及八皇后问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.递归的重要规则在执行一...
    99+
    2023-06-30
  • python中小数点后的位数问题怎么解决
    这篇文章主要介绍“python中小数点后的位数问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python中小数点后的位数问题怎么解决”文章能帮助大家解决问题。python中小数点后的位数...
    99+
    2023-07-06
  • 在python中使用[[v]*n]*n遇到的坑及解决
    目录使用[[v]*n]*n遇到的坑遇到的问题通过一番研究使用[[v]*n]*m遇到的问题需求:想通过python生成m行n列的矩阵使用[[v]*n]*n遇到的坑 今天通过[[v]*n...
    99+
    2024-04-02
  • Java通过递归算法解决迷宫与汉诺塔及八皇后问题
    目录1.递归的重要规则2.递归的三个案例1.老鼠出迷宫2.汉诺塔3.八皇后1.递归的重要规则 在执行一个方法时,就创建一个新的受保护的独立空间(栈空间)。方法的局部变量时独立的,不会...
    99+
    2024-04-02
  • 在python中解决死锁的问题
    1.添加超时时间: fromthreading import Thread, Lock importtime mutex1= Lock() # 创建一个互斥锁 mutex2=...
    99+
    2024-04-02
  • java后端怎么解决跨域问题
    在Java后端解决跨域问题可以使用以下几种方法: 使用Servlet的过滤器:创建一个实现javax.servlet.Filte...
    99+
    2023-10-23
    java
  • 怎么在python中使用os.listdir()方法解决乱码问题
    本篇文章给大家分享的是有关怎么在python中使用os.listdir()方法解决乱码问题,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Python的优点有哪些1、简单易用,与...
    99+
    2023-06-14
  • 怎么解决img在div中居中的问题
    这篇文章主要讲解了“怎么解决img在div中居中的问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决img在div中居中的问题”吧!Img是内联元素...
    99+
    2024-04-02
  • 怎么在nginx中解决cookie跨域访问问题
    怎么在nginx中解决cookie跨域访问问题?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1nginx: [emerg] unknown directive ...
    99+
    2023-06-08
  • DoytoQuery中关于N+1查询问题解决方案详解
    目录1. 背景2. SQL层的解决方案3. ORM应用层的解决方案4. 小结1. 背景 Java Persistence with Hibernate 在12.2.1小节使用如下例...
    99+
    2022-12-27
    DoytoQuery N+1查询 DoytoQuery查询
  • 怎么在html中解决tomcat乱码问题
    本篇文章为大家展示了怎么在html中解决tomcat乱码问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。解决tomcat 静态页面(html)中文乱码终极篇tomcat 中jsp不会乱码 但是ht...
    99+
    2023-06-15
  • Python排序问题怎么解决
    本文小编为大家详细介绍“Python排序问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python排序问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.冒泡排序冒泡排序(Bubble S...
    99+
    2023-07-06
  • 怎么用Python解决Excel问题
    本篇内容介绍了“怎么用Python解决Excel问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!「问题说明」这次要处理的excel有两个s...
    99+
    2023-07-06
  • python的Traceback问题怎么解决
    在Python中,Traceback通常是由程序中的错误或异常引起的。要解决Traceback问题,可以尝试以下几种方法: 仔细阅...
    99+
    2024-03-08
    python
  • 怎么解决php中js加载后的乱码问题
    本篇内容介绍了“怎么解决php中js加载后的乱码问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php中js加载后乱码的解决办法:1、将编...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作