Python 帕斯卡三角形/线

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

我正在为家庭作业编写一个代码,它需要输出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 = 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:数学中的数字有点随意,所以没有正确的答案。