python八皇后问题怎么解决
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,本篇内容主要讲解"python八皇后问题怎么解决",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python八皇后问题怎么解决"吧!import rando
千家信息网最后更新 2025年12月03日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安全错误
数据库的锁怎样保障安全
网络技术班徽
珠海手机软件开发招聘信息
怪物猎人4g 数据库
操作系统软件开发论文
教育数据库填写有什么用
河北少儿科教频道网络安全回放
多媒体交换式管理服务器
网络数据库是什么
北京爱眼网络技术有限公司
农业方面的软件开发公司
智能停车软件开发技术研究
网络安全几项原则几点主张
网络安全2分钟演讲稿
网络安全 二哥
网络安全专题讲座用英语怎么说
数据库的不可替代功能
网络技术运维技术
数据库自增删除
河北链家网络技术有限公司
深圳青枣网络技术有限公司
布谷鸟服务器管理工具怎么更新
数据库后台面试
号星互联网科技有限公司
魔兽世界单机数据库攻击力
旅店业网络安全
操作系统数据库怎么加密
服务器格式不正确什么意思
网络安全管理与技术
数据库两张表格数据任意相乘
网络技术工作日志