-1

宿題のコードを書いています。パスカルの三角形の値を出力する必要がありますが、三角形では出力しません。たとえば、私は入力します

pascalLine(2)

出力:

[1,2,1]

および:

pascalLine(4)

出力:

[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()
4

2 に答える 2

2

行を計算するための元のコードが正しいと仮定すると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()
于 2012-10-22T00:37:43.423 に答える
2

三角形全体を計算しなくても、この単純なアルゴリズムを使用して任意の行を計算できます。

def pascal_row(n):
    row = [1]

    for col in range(1, n):
        row.append(row[-1] * (n - col) / col)

    return row
于 2012-10-22T00:45:49.240 に答える