千家信息网

python八皇后问题怎么解决

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇内容主要讲解"python八皇后问题怎么解决",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python八皇后问题怎么解决"吧!import rando
千家信息网最后更新 2026年11月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安全错误 数据库的锁怎样保障安全 互联网是第几次科技革命的成果 科技互联网龙头 互联网巨头科技公司 深圳互联网科技公司 上游互联网科技 四川狮子座互联网科技 成都狮子座互联网科技 湖南洣水互联网科技有限公司扣款 玖二柒互联网科技公司待遇 小米互联网科技园设置 广州新华互联网科技学校电竞方面 江苏苏星互联网科技有限公司 宇信科技在杭州互联网排第几 互联网安防科技感 本届互联网大会上的黑科技 35岁以上互联网科技行业 广州燕处互联网科技有限公司 互联网界的黑科技 西安左小互联网科技有限公司 恒生科技互联网指数十大成分股 花魁咖啡 互联网络科技有限公司 奇酷互联网科技 互联网时代科技改变生活 华夏恒生科技与互联网科技 玉溪新华互联网科技好不好 互联网金融科技名词解释 互联网科技快讯热点 广东鹅鹅鹅互联网科技有限公司 好易买互联网科技
0