Python 打印杨辉三角

任务:利用二维数组打印杨辉三角

杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉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+Cn1an1b+Cn2an2b2++Cnianibi++Cnn1abn1+Cnnbn=i=0nCnianibiCni=(ni)!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     
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iFulling

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值