Python生成器實現楊輝三角

2021-08-08 04:48:30 字數 1057 閱讀 2163

很容易就得出規律: 除根以外,每個數都由它上層的左右兩數之和,乙個數不存在即視為0。根為1

由此規律,易得每層邊界數值為1

下面用python的生成器來實現這個著名的三角:)

# _*_ coding: utf-8 _*_

defyanghui

(level):

for i in range(level):

# 由於根不符合抽象出的規律,單獨處理

if i == 0:

yield [1]

gen = yanghui(level)

else:

current_level = [1]

prev_level = next(gen)

try:

for j in range(i):

# 這裡會產生`indexerror`異常,因為最右邊只有乙個加數了,j+1過界

except:

#pass

finally:

yield current_level

if __name__ == '__main__':

for i in yanghui(10):

print(i)

執行結果如下:

wk:mysource mac$ python yanghui.py 

[1][1, 1]

[1, 2, 1]

[1, 3, 3, 1]

[1, 4, 6, 4, 1]

[1, 5, 10, 10, 5, 1]

[1, 6, 15, 20, 15, 6, 1]

[1, 7, 21, 35, 35, 21, 7, 1]

[1, 8, 28, 56, 70, 56, 28, 8, 1]

[1, 9, 36, 84, 126, 126, 84, 36, 9, 1]

python 生成器 楊輝三角

楊輝三角的定義如下 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1把每一行看做乙個list,試寫乙個generator,不斷輸出下一行的list 期待輸出 1 1,1 1,2,1 1,3,3,1 1,4,6,4,1 1,5,10,10,5,1 1,6,15,2...

python 生成器生成楊輝三角的方法 必看

用python寫趣味程式感覺屌屌的,停不下來 生成器生成展示楊輝三角 原理是在乙個2維陣列裡展示楊輝三角,空的地方用0,輸出時,轉化為 def yang line n,leng 0,2 line 1 f list list range leng 2 預先分配,insert初始胡會拖慢速度,最底下一行...

楊輝三角 python實現

楊輝三角python實現 generator toc 本人在學習廖雪峰老師的python教程時,遇見練習題 因此得到如下解 計算楊輝三角 def yh m n 0 while n m if n 0 n n 1 yield 1 if n 1 l 1,1 yield l n n 1 l.insert 0...