首页 > 代码库 > 八皇后--python代码
八皇后--python代码
迭代和递归方法的运用
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))))
八皇后--python代码
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。