python八皇后问题怎么解决
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,本篇内容主要讲解"python八皇后问题怎么解决",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python八皇后问题怎么解决"吧!import rando
千家信息网最后更新 2025年02月04日python八皇后问题怎么解决
本篇内容主要讲解"python八皇后问题怎么解决",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python八皇后问题怎么解决"吧!
import random#冲突检查,在定义state时,采用state来标志每个皇后的位置,其中索引用来表示横坐标,基对应的值表示纵坐标,例如: state[0]=3,表示该皇后位于第1行的第4列上def conflict(state, nextX): nextY = len(state) for i in range(nextY): #如果下一个皇后的位置与当前的皇后位置相邻(包括上下,左右)或在同一对角线上,则说明有冲突,需要重新摆放 if abs(state[i]-nextX) in (0, nextY-i): return True return False#采用生成器的方式来产生每一个皇后的位置,并用递归来实现下一个皇后的位置。def queens(num, state=()): for pos in range(num): if not conflict(state, pos): #产生当前皇后的位置信息 if len(state) == num-1: yield (pos, ) #否则,把当前皇后的位置信息,添加到状态列表里,并传递给下一皇后。 else: for result in queens(num, state+(pos,)): yield (pos, ) + result#为了直观表现棋盘,用X表示每个皇后的位置def prettyprint(solution): def line(pos, length=len(solution)): return '. ' * (pos) + 'X ' + '. '*(length-pos-1) for pos in solution: print line(pos)if __name__ == "__main__": queens(8) prettyprint(random.choice(list(queens(8))))
到此,相信大家对"python八皇后问题怎么解决"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
皇后
位置
问题
信息
内容
冲突
学习
实用
更深
直观
上下
兴趣
实用性
实际
对角
对角线
操作简单
方式
方法
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络技术有限公司需要什么资质
小本服务器
南浔服务器附近有没有眼镜店
数据库软件技术指标
黑色沙漠 数据库文件
战地5 连接服务器
鬼泣巅峰之战服务器异常
新时代网络安全主题党日活动
软件开发专用英语词汇
软件开发培训班的重要作用
兰州恒通网络技术有限公司
电子商务网络安全培训课程
数据库的自增代码
酒店服务器被黑
写一个数据库系统从哪开始
兴仁网络安全系统收费多少
mc手游服务器
日照联想服务器代理哪家好
网络安全管理课程的心得体会
ftp 查看服务器时间
附加一个数据库文件
python服务器性能
网络安全法考试试卷在哪下载
辽宁软件开发外包详情
如何获取网站的数据库
国家网络安全宣传周雨花区
买阿里云服务器购买
植物照明数据库
微信小程序的数据库太蠢了吧
云南高校党建软件开发系统