Python 帕斯卡三角形/线
我正在为家庭作业编写一个代码,它需要输出pascal三角形的值,但不是三角形中的值。例如,我输入Python 帕斯卡三角形/线,python,recursion,Python,Recursion,我正在为家庭作业编写一个代码,它需要输出pascal三角形的值,但不是三角形中的值。例如,我输入 pascalLine(2) 它输出: [1,2,1] [1,4,6,4,1] 以及: pascalLine(4) 它输出: [1,2,1] [1,4,6,4,1] 我目前有这段代码,我相信它还远远没有完成,因为它输出一个三角形 def pascalLine(n): for rownum in range (n): newValue=1 PrintingList
pascalLine(2)
它输出:
[1,2,1]
[1,4,6,4,1]
以及:
pascalLine(4)
它输出:
[1,2,1]
[1,4,6,4,1]
我目前有这段代码,我相信它还远远没有完成,因为它输出一个三角形
def pascalLine(n):
for rownum in range (n):
newValue=1
PrintingList = list()
for iteration in range (rownum):
newValue = newValue * ( rownum-iteration ) * 1 / ( iteration + 1 )
PrintingList.append(int(newValue))
print(PrintingList)
print()
假设计算第n行的原始代码是正确的,您可以去掉外部循环:
def pascalLine(n):
newValue=1
row = [newValue]
for i in range (n):
newValue = (newValue * (n-i)) / ( i + 1 )
row.append(newValue)
print(row)
print()
您可以使用此简单算法计算任意行,而不必计算整个三角形:
def pascal_row(n):
row = [1]
for col in range(1, n):
row.append(row[-1] * (n - col) / col)
return row
它需要输出帕斯卡三角形的值,但不是三角形中的值——我不确定你想要的输出是什么。@millimoose:我认为OP给出的[1,2,1]和[1,4,6,4,1]就是想要的输出的例子。也就是说,函数应该返回帕斯卡三角形的第n行作为列表。解决方案不会给出第n行,而是给出第n-1行。根据维基百科的定义,第一行被认为是第0行。@kmonsoor:这些行对应于x+y的幂。因为x+y^0=1,所以第0行将是1。@kmonsoor:数学中的数字有点随意,所以没有正确的答案。