欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python:利用二次项系数原理实现杨辉三角

程序员文章站 2022-06-06 21:01:56
...

杨辉三角Python:利用二次项系数原理实现杨辉三角

(a+b)0 = 1
(a+b)1 = a + b
(a+b)2 = a2 + 2ab + b2
(a+b)3 = a3 + 3a2b + 3ab2 + b3

在计算系数时,我们可以使用C(n,m) = n!/(n-m)!/m!
因此我们可以用如下代码实现杨辉三角形的输出。

def factorial(x):        #定义阶乘,即x!
    if x == 0:
        return 1
    if x == 1:
        return x
    return x * factorial(x-1)
    
def yanghui(n):
    m = 0
    print(' ' * (n-2),'1')              #n-2是因为第一行前面应有n-1个空格,而“,”又代表一个空格,所有需要删去多余的空格
    while m < n-1:
        for i in range(n-m-2,0,-1):     #前面的空格数从多变少
            print(' ', end = '')        #print中end的默认值为换行,可我们想要空格在一行输出,需要更改end的默认值
        for j in range(0,m+2):          #第n+1行第r项系数:n!/(n-r)!/r!
            out = factorial(m+1)//factorial(m+1-j)//factorial(j)   #注意要用//否则会成为浮点数
            print(str(out),end = ' ')
        m += 1
        print('\r')
        
n = int(input())
yanghui(n)

输出:
Python:利用二次项系数原理实现杨辉三角