Python 以元组形式返回二进制
我想把函数binomal_aux的结果保存到一个元组中,但我不知道如何保存,这是我现在的代码Python 以元组形式返回二进制,python,recursion,tuples,Python,Recursion,Tuples,我想把函数binomal_aux的结果保存到一个元组中,但我不知道如何保存,这是我现在的代码 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 e
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))
在
binomal
函数中,只需创建要返回的元组
def binomal(n):
return tuple(binomal_aux(n, i) for i in range(n+1))
还要注意,正确的拼写是binom
ial
另一种方式:
def binomal(n):
from itertools import combinations
return tuple(len(list(combinations(range(n), r=t))) for t in range(n + 1))
注意:它的拼写是二项式的,而不是二项式的。在for循环之前不需要声明/定义
i
,也不需要在函数末尾返回。好的,再来一个。您的if/elif可以简单地替换为:if k==0或k==n:
,或者甚至if k in(0,n):
更改了返回元组(binomal_aux(n,i)for i in range(n+1)),并且非常有效!
def binomal(n):
from itertools import combinations
return tuple(len(list(combinations(range(n), r=t))) for t in range(n + 1))