用来练手的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矩阵赋值完毕后,只需要将非零元素输出即可。