+ -
当前位置:首页 → 问答吧 → 一个组合问题

一个组合问题

时间:2011-04-01

来源:互联网

Python code

def comb(m,k,temp):
    i=0
    j=0
    for i in range(m,k-1,-1):
        temp[k-1] = i
        if k > 1:
            comb(i-1,k-1,temp)
        else:
            print temp
#            yield temp

#for i in comb(4,2,[0,0]):
#    print i

comb(4,2,[0,0])


能正常输出
[3, 4]
[2, 4]
[1, 4]
[2, 3]
[1, 3]
[1, 2]

但如果使用生成器:
Python code

def comb(m,k,temp):
    i=0
    j=0
    for i in range(m,k-1,-1):
        temp[k-1] = i
        if k > 1:
            comb(i-1,k-1,temp)
        else:
#            print temp
            yield temp

for i in comb(4,2,[0,0]):
    print i


返回是空的,不知道是什么原因,调了半天,不知道为啥?求教了~~~

作者: wangsuyi640   发布时间: 2011-04-01

补充下:comb(m,k,temp) 是选择m个数中的k个,并打印其所有可能~~~

作者: wangsuyi640   发布时间: 2011-04-01