很容易就得出規律: 除根以外,每個數都由它上層的左右兩數之和,乙個數不存在即視為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...