上QQ阅读APP看书,第一时间看更新
3.5 牛刀小试——实现杨辉三角
杨辉三角,是二项式系数在三角形中的一种几何排列,出现于中国南宋数学家杨辉1261年所著的《详解九章算法》一书中。杨辉三角是中国数学史上的一个伟大成就。
思考点拨:
(1)每个数等于它上方两数之和。
(2)每行数字左右对称,由1开始逐渐变大。
(3)第n行的数字有n项。
(4)前n行共[(1+n)n]/2个数。
(5)第n行的m个数可表示为C(n-1, m-1),即为从n-1个不同元素中取m-1个元素的组合数。
(6)第n行的第m个数和第n-m+1个数相等,为组合数性质之一。
(7)每个数字等于上一行的左右两个数字之和,可用此性质写出整个杨辉三角。
实现示例(yh_triangle.py):
# 生成杨辉三角的一行 def create_line(l_list): line_list=[1] for x in range(1, len(l_list)): line_list.append(l_list[x] + l_list[x - 1]) line_list.append(1) return line_list # 打印 def print_line(line_list, width_v): s="" for x in line_list: s += str(x) + " " print(s.center(width_v)) lines=[1] row=int(input("输入行数:")) # 设置打印宽度 width=row * 4 for x in range(row): print_line(lines, width) lines=create_line(lines)
执行示例如下:
输入行数:5 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1