2010-01-31 35 views
0

我想將我的函數binomal_aux的結果保存到一個元組中,但我不知道如何,這裏是我現在的代碼。返回binomal作爲元組

def binomal (n):  
    i=0 
    for i in range(n): 
     binomal_aux(n,i) #want this to be in a tuple so, binomal (2) = (1,2,1) 
    return 

def binomal_aux (n,k): 
    if (k==0): 
     return 1 
    elif (n==k): 
     return 1 
    else: 
     return (binomal_aux(n-1,k) + binomal_aux(n-1,k-1)) 
+0

注:它的拼寫二項式,不binomal。 – MatrixFrog 2010-01-31 21:42:36

+0

您不需要在for循環之前聲明/定義'i',也不需要函數末尾的'return'。 – MatrixFrog 2010-01-31 21:43:55

+1

好的,還有一個。你的if/elif可以簡單地替換爲:'if k == 0 or k == n:',或者甚至'如果k in(0,n):' – MatrixFrog 2010-01-31 21:45:27

回答

2

在你binomal功能,只要你想返回的元組。

def binomal(n): 
    return tuple(binomal_aux(n, i) for i in range(n+1)) 

還要注意正確的拼寫是binomal

0
def binomal (n):  
    return tuple(binomal_aux(n,i) for i in range(n+1)) 
+0

改變了返回元組(binomal_aux(n,i)在範圍(n + 1)) 並完美謝謝一堆! – Mike 2010-01-31 21:44:10

0

另一種方法:

def binomal(n): 
    from itertools import combinations 
    return tuple(len(list(combinations(range(n), r=t))) for t in range(n + 1))