找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 119|回复: 0

[求助] python 八皇后问题

6

主题

10

帖子

10

积分

贫民

积分
10
robin_xzz 发表于 2019-4-11 21:33:47 | 显示全部楼层 |阅读模式
import random
def confict(state,nextX):
    nextY=len(state)
    for i in range(nextY):
        if abs(state[i]-nextX) in (0,nextY-i):
            return True
def queens(num=8,state=()):
    for pos in range(num):
        if not confict(state,pos):
            if len(state)==num-1:
                yield(pos,)--------------------------------------------------前面三个为(1,3,0),最后一个符合条件的为2,  yield(pos,)执行这一步就终止了,单独返回(2,)怎么会把2合入到元组中,变成(1,3,0,2)?
            else:
                for result in queens(num,state+(pos,)):
                    yield (pos,) + result


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表