Python递归计数器-理解八皇后解法

Python 递归计数器

用Python 的八皇后改造一个计数器,每次生成一个num 个元素的元组。解八皇后的前提是先理解这个计数器。这个计数器加上限制条件,就可以组成八皇后的解法或组合成各种解法。

上代码:

import datetime

def queens(num,state=()):          #用八皇后的递归函数定义
    for pos in range(num):
        if len(state)==num-1:
            yield (pos,)
        else:
            for result in queens(num,state+(pos,)):
                yield (pos,)+result
  
       
a=datetime.datetime.now()     #开始的时间
for i in queens(6):
     print(i)
   
b=datetime.datetime.now()       #结束递归时间
print(b-a)                                   #计算一下用时多长

计算6位的结果片段如下:

(5, 5, 5, 5, 4, 5)
(5, 5, 5, 5, 5, 0)
(5, 5, 5, 5, 5, 1)
(5, 5, 5, 5, 5, 2)
(5, 5, 5, 5, 5, 3)
(5, 5, 5, 5, 5, 4)
(5, 5, 5, 5, 5, 5)
0:00:02.965189
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值