首页 > 编程语言 >四皇后问题Python实现

四皇后问题Python实现

时间:2024-08-27 11:51:50浏览次数:10  
标签:k2 Python range k3 实现 k1 k4 皇后

四皇后问题是出自于国际象棋来提出的,众所周知,皇后(queen)在国际象棋中可以控制横竖以及斜线的棋子,那么四皇后的规则是什么呢,咱们废话不多说,直接进入它的规则。

1.四皇后问题的规则

四皇后问题其实就是把四个皇后放在一个四*四的棋盘上使这些皇后不被互相控制就像这样:

那么怎么用Python代码解决呢?那么就一起进入第二个Part吧!

2.利用暴力法求解四皇后问题

代码如下:

n=4
a=[]
for k1 in range(n):
    for k2 in range(n):
        if k1==k2 or k1==k2+1 ork1==k2-1:
            continue
        for k3 in range(n):
            if k1==k3 or k1==k3+2 or k1==k3-2 or k2==k3+1 or k2==k3-1:
                continue
            for k4 in range(n):
                if k1==k4 or k1==k4+3 or k1==k4-3 or k1==k3-3 or k2==k4 or k2==k4+2 or\
                   k2==k4-2 or k3==k4 or k3==k4+1 or k3==k4-1:
                   continue
                a.append([k1,k2,k3,k4])

for i in range(len(a)):
    if i!=len(a):
        print("第%d种方法"%(i+1))
    for k in range(len(a[i])):
        for j in range(a[i][k]):
            print(".",end="")
        print("Q",end="")
        for j in range(n-1-a[i][k]):
            print(".",end="")
        print("")

3.结语

在了解了四皇后问题的代码后,可以经过不断的改进,把四皇后改进成八皇后,n皇后等,希望这个代码能对你有所帮助。

标签:k2,Python,range,k3,实现,k1,k4,皇后
From: https://blog.csdn.net/zhaozihan000000/article/details/141598401

相关文章

  • 基于OpenCV-Python实现人脸识别-----摄像头捕获人脸图像显示中文乱码问题
    基于OpenCV-Python实现人脸识别时,为了使图像上显示识别到人员的中文名字,做了几次尝试,使用PIL.Image和OpenCV图像格式相互转换解决:使用OpenCV将图片灰度化,对加载的灰度化图使用分类器中的detectMultiScale()函数查找目标人脸,并使用for循环实现矩形框和圆形框框住查找到的人脸。......
  • 基于springboot停车场管理系统的设计与实现-附源码191428
    目 录摘要1绪论1.1选题目的与意义1.2国内外研究现状1.3系统开发技术的特色1.4论文结构与章节安排2 停车场管理系统 系统分析2.1可行性分析2.2系统流程分析2.2.1数据增加流程2.3.2数据修改流程2.3.3数据删除流程2.3系统功能分析2.3.1功......
  • 基于SpringBoot+Vue影城管理系统的设计和实现(源码+文档+部署讲解)
    博主介绍:全网粉丝10W+,CSDN博客专家、全栈领域优质创作者,3年JAVA全栈开发经验,专注JAVA技术、系统定制、远程指导,致力于企业数字化转型。研究方向:SpringBoot、Vue.JS、MyBatisPlus、Redis、SpringSecurity、MySQL、小程序、Android、Uniapp等。博主说明:本文项目编号......
  • 基于SpringBoot+Vue服装商城系统的设计和实现(源码+文档+部署讲解)
    博主介绍:全网粉丝10W+,CSDN博客专家、全栈领域优质创作者,3年JAVA全栈开发经验,专注JAVA技术、系统定制、远程指导,致力于企业数字化转型。研究方向:SpringBoot、Vue.JS、MyBatisPlus、Redis、SpringSecurity、MySQL、小程序、Android、Uniapp等。博主说明:本文项目编号......
  • 4.Python操控Excel之格式
    1.设置字体斜体、加粗、颜色2.计算公式3.设置表格高度和宽度4.指定单元格合并5.取消指定单元格合并 ......
  • ETL数据集成丨实现SQLServer数据库的高效实时数据同步
    SQLServer,作为一款功能强大的关系型数据库管理系统(RDBMS),在企业级应用中占据着举足轻重的地位。它不仅提供了可靠的数据存储与管理能力,还集成了高级数据分析、报表服务、集成服务以及商业智能等功能,为复杂业务场景提供了全面的解决方案。SqlServer核心特性高性能与高可用性:SQL......
  • 在三维场景中点击设备,相机靠近放大预览功能实现
    效果如下:在三维场景中点击设备,相机靠近放大预览功能实现完整代码如下:1、html    <divid="tag"style="display:none;">        <!--position:relative;约束子元素绝对定位参照点-->        <divstyle="position:relative;width:400px;heig......
  • Nginx实现文件下载
    安装nginx可看我的另一篇文章:http://t.csdnimg.cn/tjRLA1,创建存储下载文件的路径路径自己根据需求设置mkdir-p/data/download/app2,对文件夹授权chmod755/data/download/app3,修改nginx配置文件vim/data/nginx/conf/nginx.conf注意这里使用:alias,不要用root,不然会......
  • PyJWT 和 python-jose 在处理JWT令牌处理的时候的差异和具体使用
    PyJWT和python-jose是两个用于处理JSONWebTokens(JWT)的Python库。它们都有助于生成、解码、验证和管理JWT,但它们在功能范围和设计哲学上有一些重要的区别。本篇介绍它们之间的一些差异,以及在项目中使用FastAPI+ python-jose 来处理访问令牌的生成以及一些例子代码供......
  • Python - Anti-Patterns
    Thesearecommonprogrammingpractices that,whilenotnecessarilywrong,oftenleadtolessefficient,lessreadable,andlessmaintainablecode. Byunderstandingthesepitfalls,youcanwritecleaner,moreefficientcodeforyourPythonapplications. ......