[英]Creating Pascal's Triangle using Python Recursion
我正在做一项作业,要求我使用递归函数创建一个Pascal Triangle。 以下是到目前为止我已经完成的工作以及获得的工作经验。 我对Python和编程技术还很陌生,所以我不知道从这里开始应该有什么帮助,我们将不胜感激!
def combination(n, k):
print((n - 1) / (k - 1)) + ((n - 1) / k)
def pascals_triangle(rows):
for row in range(rows):
answer = ""
for column in range(row + 1):
answer = answer + combination(row, column) + "\t"
print(answer)
pascals_triangle(5)
实际上,您根本没有在答案中使用递归。 我认为您正在尝试编写公式nCk =(n-1)C(k-1)+(n-1)Ck。 因此,您需要从内部调用combination
(对“结束”条件使用警戒:nC0 = nCn = 1):
def combination(n, k):
if k == 0 or k == n:
return 1
return combination(n - 1, k - 1) + combination(n - 1, k)
def pascals_triangle(rows):
for row in range( rows):
answer = ""
for column in range( row + 1):
answer = answer + str(combination(row, column)) + "\t"
print(answer)
pascals_triangle(5)
输出:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
请注意,这是一种极为低效的方法:每次使用二项式系数时,您都会使用相同的参数多次调用combination
。 您可能会考虑在进行过程中缓存找到的系数。
您的代码的另一个问题是您的combination
函数实际上没有返回任何东西,它只是打印一个值并退出(返回None
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.