Python實現楊輝三角,超詳細!
阿新 • • 發佈:2018-12-26
巧妙實現楊輝三角程式碼
def triangles(): N=[1] #初始化為[1],楊輝三角的每一行為一個list while True: yield N #yield 實現記錄功能,沒有下一個next將跳出迴圈, S=N[:] #將list N賦給S,通過S計算每一行 S.append(0) #將list新增0,作為最後一個元素,長度增加1 N=[S[i-1]+S[i] for i in range(len(S))] #通過S來計算得出N n = 0 results = [] for t intriangles(): print(t) results.append(t) n = n + 1 if n == 10: break if results == [ [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] ]: print('測試通過!') else: print('測試失敗!')
分析
N=[S[i-1]+S[i] for i in range(len(S))]
設上一個N為[1,1]
則S=[1,1,0]
通過式子可以得出
N=[1,2,1]