Python版八皇后问题
2014-11-17 19:31
381 查看
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=8,state=()): if len(state) == num-1: for pos in range(num): if not conflict(state, pos): yield (pos,) else: for pos in range(num): if not conflict(state, pos): for result in queens(num, state+(pos,)): yield (pos,)+result def prettyprint(solution): def line(pos,length=len(solution)): return '. '*(pos)+'X '+'. '*(length-pos-1) for pos in solution: print line(pos)
import random
prettyprint(random.choice(list(queens())))
相关文章推荐
- python 解决八皇后问题
- 八皇后问题---python
- python-八皇后问题
- 经典回溯算法之八皇后问题 -- Python
- python实现八皇后问题
- 八皇后问题的进化(4)-python写的八皇后
- Python实现八皇后问题
- 利用python的生成器解决八皇后问题
- Python基于生成器迭代实现的八皇后问题示例
- 八皇后问题之python和scheme实现
- Python之八皇后问题
- 飘逸的python - 八皇后问题简洁解法
- 八皇后问题——用Python解决
- python生成器实战,八皇后问题
- Python版的八皇后问题
- Python中的生成器在八皇后问题上的应用
- 流动python - 八皇后问题简单解决方案
- 小白教学式,八皇后问题,Python生成器解法
- 【算法】八皇后问题 Python实现
- python解决八皇后问题