八皇后问题

class queen:
    def conflict(state,nextX):#x表示下一个皇后编号,state表示前N个皇后在Y轴的偏移,即第几个位
    nextY=len(state)
        for i in range(nextY);
            if abs(nextX-state[i]) in (0,nextY-i):#判断是否冲突
                return True
        return flase
    def queens(num,state=()):#一开始没皇后,state为空
        for pos in range(num):
            if not conflict(state,pos):#如果不冲突
                if len(state)==num:#如果是最后一个皇后
                    yield (pos,) #以元组方式返回
                else:
                    for result in queens(num,state+(pos,)):#把当前皇后的位置加入state继续运行
                        yield (pos,)+result
#转自一本书,无法贴出网址,只能选择原创了,见谅
 

转载于:https://my.oschina.net/tigereatspinach/blog/351900

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值