pirates

pirates

# __author__ = liukun
# coding:utf-8
class pirates(object):
    def __init__(self,n,g):
        self.n = n
        self.g = g
    def dist(self):
         """all plans for n people, best first"""
         if self.n == 1:
             yield [self.g]
             return
         for i in range(self.g, -1, -1):#步长-1 递减
             for d in pirates(self.n-1, self.g-i).dist():
                # print([i] + d)
                 yield [i] + d
l1=pirates(2,10)
print(list(l1.dist()))
print(list(l1.dist()).__len__())


# for i in range(100,-1,-1):
#     print(i)

 

posted @ 2016-03-03 23:55  侠之大者kamil  阅读(142)  评论(0)    收藏  举报