用來練手的python練習題,原題鏈接: python練習實例61
題干: 打印出楊輝三角形
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
實現代碼如下:
import numpy as nptable = np.zeros((10,10),dtype=int)
table[:,0] = 1
table[1,1] = 1
print(table)
for i in range(2,table.shape[0]):for j in range(1,table.shape[1]):table[i,j] = table[i-1,j-1] + table[i-1,j]
print(table)
for i in range(table.shape[0]):for j in range(i+1):print(str(table[i,j]) + " ",end="")if j == (i):print()
輸出結果如下:
這個例題的思路比較清晰,首先我們創建一個10*10的0矩陣 table。接著,利用楊輝三角形的性質給矩陣中對應的元素賦值,即當前行的元素是上一行兩個相鄰元素之和 : am,n=am?1,n?1+am?1,na_{m,n} = a_{m-1,n-1} + a_{m-1,n}am,n?=am?1,n?1?+am?1,n?。在對table矩陣賦值完畢后,只需要將非零元素輸出即可。