本系列旨在通过一系列由浅入深的python实战代码或项目,使普通人也能感受到编程的乐趣,编程能够在平时的工作生活上有所帮助。欢迎查看系列的开篇词和前面文章。
杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。
杨辉三角是中国数学史上的一个伟大成就。
杨辉三角最本质的特征是,它的两条斜边都是由数字1组成的,而其余的数则是等于它肩上的两个数之和。
杨辉三角示意图
本节用python来实现杨辉三角,代码遵循常规思路,不是很简洁优雅,不过这样也可以方便理解
from sys import stdout
#定义函数,n代表你要打印出几阶的杨辉三角
def YHtriangle(n):
a = []
#先构造一个n阶的0矩阵
for i in range(n):
a.append([])
for j in range(n):
a[i].append(0)
#将对应值赋为1
for i in range(n):
a[i][0] = 1
a[i][i] = 1
#累加,从上往下逐步构造杨辉三角
for i in range(2,n):
for j in range(1,i):
a[i][j] = a[i - 1][j-1] + a[i - 1][j]
for i in range(n):
print(' ' * (n - i), end='')#前面打印空格,使居中显示
for j in range(i + 1):
stdout.write(str(a[i][j]))#输出构成杨辉三角的数字
stdout.write(' ')#输出数字之间的间隔
print()#换行
#程序运行入口,打印10阶的杨辉三角
if __name__ == '__main__':
YHtriangle(10)
输出10阶杨辉三角的结果
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
自己测试的时候可以增大n的值,输出更高阶的杨辉三角,碰到做杨辉三角的题的时候,也可以使用这个快捷的方法
留言与评论(共有 0 条评论) “” |