1,什么是杨辉三角?
杨辉三角,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年。杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合。
2,特性
Note: 每行端点与结尾的数为1.
- 每个数等于它上方两数之和。
- 每行数字左右对称,由1开始逐渐变大。
- 第n行的数字有n项。
- 前n行共[(1+n)n]/2 个数。
- 第n行的m个数可表示为 C(n-1,m-1),即为从n-1个不同元素中取m-1个元素的组合数。
- 第n行的第m个数和第n-m+1个数相等 ,为组合数性质之一。
- 每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角。即第n+1行的第i个数等于第n行的第i-1个数和第i个数之和,这也是组合数的性质之一。即 C(n+1,i)=C(n,i)+C(n,i-1)
3,python 实现
#!/usr/bin/env python # -*- encoding: utf-8 -*- ''' @File :YanghuiSanJiao.py @Description : 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 ........... @CreatTime :2020/09/08 14:58:05 @Author :Yunhgu @Version :1.0 ''' def YanghuiSanJiao(number: int): YanghuiList = [[0 for j in range(i+1)] for i in range(number)] for i in range(number): for j in range(i+1): if j == 0 or i == j: # 如果这个数是每一行第一个或者最后一个就赋值为1 YanghuiList[i][j] = 1 else: # 每个数字是它的上层两个数字相加 YanghuiList[i][j] = YanghuiList[i-1][j-1]+YanghuiList[i-1][j] # 打印结果 for i in range(number): print(" "*(number-i), end='') for j in range(i+1): print(YanghuiList[i][j],end=' ') print() if __name__ == "__main__": YanghuiSanJiao(int(input('please input a number:')))