菜鸟学习之python八皇后问题学习
2017-12-27 00:12
148 查看
#state 表示元祖 这里表示一个回溯问题 在八皇后问题每一次递归的层面是一行
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 pos
print(list(queens(4,(1,3,0))))
为什么同样的问题,在state位置只先定下两个却不行?是位置的选择也还会影响结果的输出吗?
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 pos
print(list(queens(4,(1,3,0))))
为什么同样的问题,在state位置只先定下两个却不行?是位置的选择也还会影响结果的输出吗?
相关文章推荐
- Python菜鸟学习第三课
- 菜鸟小白的python学习之路
- JAVA从菜鸟【入门】到新手【实习】一一Python学习历程:游戏学Python:文字猜数游戏
- python菜鸟笔记--python关于json对象的使用方法学习
- 菜鸟学习Python+Selenium遇到的第一个要崩溃的问题
- JAVA从菜鸟【入门】到新手【实习】一一Python学习资源
- JAVA从菜鸟【入门】到新手【实习】一一转入第二语言Python学习“灵活学习,学练结合,经验积累”
- Python菜鸟学习手册15----多线程
- Python菜鸟学习手册09----面向对象续
- Python菜鸟学习第二课
- 菜鸟的Python爬虫学习笔记
- python菜鸟教程学习笔记
- python菜鸟学习之路
- Python菜鸟学习手册11----异常处理
- JAVA从菜鸟【入门】到新手【实习】一一Python项目实战学习规划
- Python菜鸟学习手册05----控制流
- Python入门----语句(菜鸟教程的学习笔记)
- python菜鸟学习之路
- JAVA从菜鸟【入门】到新手【实习】一一Python学习历程:Python解释器查阅内置函数
- Python八皇后问题的学习体会与分析-递归的运用