博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
八皇后--python代码
阅读量:6229 次
发布时间:2019-06-21

本文共 1105 字,大约阅读时间需要 3 分钟。

迭代和递归方法的运用

import randomdef prettyprint(solution):      #图形化处理数据    def line(pos,length=len(solution)):   #单行数据的处理        return '.'*(pos) + 'x'+'.'*(length-pos-1)    for pos in solution:       #画出每八行的图        print line(pos)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):#    if len(state) == num-1:#        for pos in range(num):#            if not conflict(state,pos):#                yield posdef queens(num=8,state=()):    for pos in range(num):        print state        if not conflict(state,pos):            if len(state)==num-1:         #最后一个                yield (pos,)              #迭代方法            else:                for result in queens(num,state+(pos,)):   #递归前七个数据#                    print result                    yield(pos,)+resultprint 'bahuanghou'print list(queens(4))#for i in list(queens(8)):#    prettyprint(i)#    print 'next'#prettyprint(random.choice(list(queens(8))))

 

转载于:https://www.cnblogs.com/lcamry/p/5847068.html

你可能感兴趣的文章
微软私有云分享(R2)2-服务模板的变量
查看>>
足球防守技巧
查看>>
kettle job如何利用java的反射机制获取执行的sql语句
查看>>
SQL 必知必会·笔记<6>使用数据处理函数
查看>>
设计模式:工厂方法模式
查看>>
.Net开发笔记(二十一) 反射在.net中的应用
查看>>
ios31--NSThread
查看>>
设计模式总结篇系列:桥接模式(Bridge)
查看>>
ubuntu VNC连接树莓派
查看>>
[nodemon] Internal watch failed: watch ENOSPC错误解决办法
查看>>
全球首发----Tech·Ed 2006中国 实况报道。全程跟踪。(四)
查看>>
向C#的选项卡中添加自定义窗体
查看>>
WPF客户端读取高清图片很卡,缩略图解决方案
查看>>
ubuntu安装和配置SVN【转】
查看>>
通过串口连接控制树莓派
查看>>
线程池系列三:ThreadPoolExecutor讲解
查看>>
wp7 XAML基础
查看>>
机器这次击败人之后,争论一直没平息 | SQuAD风云
查看>>
Oracle中shrink space命令详解
查看>>
验证码 生成变形的文字
查看>>