任务:利用二维数组打印杨辉三角
杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623 ~ 1662)在1654年发现这一规律,所以这个表又叫做帕 斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。
(
a
+
b
)
1
=
a
+
b
(a+b)^1=a+b
(a+b)1=a+b
(
a
+
b
)
2
=
a
2
+
2
a
b
+
b
2
(a+b)^2=a^2+2ab+b^2
(a+b)2=a2+2ab+b2
(
a
+
b
)
3
=
a
3
+
3
a
2
b
+
3
a
b
2
+
b
3
(a+b)^3=a^3+3a^2b+3ab^2+b^3
(a+b)3=a3+3a2b+3ab2+b3
(
a
+
b
)
4
=
a
4
+
4
a
3
b
+
6
a
2
b
2
+
4
a
b
3
+
b
4
(a+b)^4=a^4+4a^3b+6a^2b^2+4ab^3+b^4
(a+b)4=a4+4a3b+6a2b2+4ab3+b4
……
二项式定理,又称牛顿二项式定理,由艾萨克牛顿于1664-1665年提出。
( a + b ) n = C n 0 a n + C n 1 a n − 1 b + C n 2 a n − 2 b 2 + … … + C n i a n − i b i + … … + C n n − 1 a b n − 1 + C n n b n = ∑ i = 0 n C n i a n − i b i , C n i = n ! ( n − i ) ! ⋅ i ! (a+b)^n=C_n^0a^n+C_n^1a^{n-1}b+C_n^2a^{n-2}b^2+……+C_n^ia^{n-i}b^i+……+C_n^{n-1}ab^{n-1}+C_n^nb^n=\displaystyle \sum_{i=0}^nC_n^ia^{n-i}b^i,C_n^i=\frac{n!}{(n-i)!\cdot i!} (a+b)n=Cn0an+Cn1an−1b+Cn2an−2b2+……+Cnian−ibi+……+Cnn−1abn−1+Cnnbn=i=0∑nCnian−ibi,Cni=(n−i)!⋅i!n!
- ( a + b ) 3 = C 3 0 a 3 + C 3 1 a 2 b + C 3 1 a b 2 + C 3 3 b 3 = a 3 + 3 a 2 b + 3 a b 2 + b 3 (a+b)^3=C_3^0a^3+C_3^1a^2b+C_3^1ab^2+C_3^3b^3=a^3+3a^2b+3ab^2+b^3 (a+b)3=C30a3+C31a2b+C31ab2+C33b3=a3+3a2b+3ab2+b3
- ( a + b ) 4 = C 4 0 a 4 + C 4 1 a 3 b + C 4 2 a 2 b 2 + C 4 3 a b 3 + C 4 4 b 4 = a 4 + 4 a 3 b + 6 a 2 b 2 + 4 a b 3 + b 4 (a+b)^4=C_4^0a^4+C_4^1a^3b+C_4^2a^2b^2+C_4^3ab^3+C_4^4b^4=a^4+4a^3b+6a^2b^2+4ab^3+b^4 (a+b)4=C40a4+C41a3b+C42a2b2+C43ab3+C44b4=a4+4a3b+6a2b2+4ab3+b4
matrix = [] # 二维矩阵
arr = [1]
for i in range(10):
matrix.append(arr)
arr = [sum(i) for i in zip([0] + arr, arr + [0])] # 每行加一个
# 等腰三角形输出
for j in range(len(matrix), 0, -1):
print(' ' * j, end=" ")
for i in matrix[0 - j]:
print('%-6s' % i, end="")
print()
输出结果:
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