走进传奇的“杨辉三角”

简介: 走进传奇的“杨辉三角”

0引言

杨辉三角,是二项式系数在三角形中的一种几何排列,在中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。它具有以下的特征:1、最外层的数字始终是 1 2、第二层是自然数列 3、第三层是三角数列 4、三角数列相邻数字相加可得方数数列 5、每一层的数字之和是一个2倍增长的数列 6、斐波那契数列(按一定角度排列) 7、素数(在杨辉三角里,除了第二层自然数列包含了素数以外,其他部分的数字都完美避开了素数。) 8、可以被特定数整除的数字形成了奇妙的分形结构

1问题描述

  1. python写出杨辉三角数

示例一:

输入:n = 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”

解释:除两边的1之外,每个数字等于它肩上的两数字

2算法描述

解题思路:首先要明白杨辉三角的组成为,除了两边的1之外,每个数字等于它肩上的两数字之和。(其实两边的1也可以想成在左右两边的1的左右还有个0)。我们由杨辉三角可得其第一行为1,所以暂定一个arr = [1],在知道运行逻辑后我们就运用循环求出所需行数的杨辉三角数(这里运用的是while循环)。因为杨辉三角数由其肩上左右两数之和所得,但通过观察我们可得杨辉三角数整体是呈现对称分布的,所以在这里我们确定一个为左起始,一个为右起始的列表,之后我们就可以通过循环求和,得到杨辉三角数。但是之后发现得到的是个集合,所以为了美观,我们先将其转化为字符串(str),通过简单内置函数“join”连接字符串,得到最终答案。当然我们发现最后会少个1,没关系,这个直接打印,简单又粗暴。

3实验结果与讨论

通过编程最终实现了杨辉三角的呈现。

附件

代码清单 用python求出杨辉三角数

arr = [1]
print(1) # 初始结果
while len(arr) < 10: # 确定行数
a = [0] + arr # [0,1,1]代表从右往左的全部三角数
b = arr + [0] # [1,1,0]代表从左往右的全部三角数
arr = [a[i] + b[i] for i in range(len(a))] # [1,2,1] 通过求和相加求出所有的杨辉三角数
s = [str(i) for i in arr] # 将答案变成字符串的类型
print(' '.join(s)) # 连接字符串,输出答案

4

杨辉三角的探讨是对古典数学的回顾,也是对逻辑思维的探讨,从逻辑发现数学之美,探讨编程的博大精深。

目录
相关文章
|
26天前
|
弹性计算 安全 Python
编程之美:几行代码带你走进雪的世界
冬季来临,用Python的`turtle`库绘制美丽的雪花图案。代码包括设置绘图窗口、定义雪花颜色、绘制雪花的递归函数以及绘制多个随机位置和大小的雪花。运行代码,享受雪花飘落的视觉盛宴。
【2022天梯赛】L1-8 静静的推荐
【2022天梯赛】L1-8 静静的推荐
【2022天梯赛】L1-7 机工士姆斯塔迪奥
【2022天梯赛】L1-7 机工士姆斯塔迪奥
|
6月前
|
存储 人工智能 测试技术
2020年第十一届蓝桥杯模拟赛解题报告
2020年第十一届蓝桥杯模拟赛解题报告
|
机器学习/深度学习 C++
蓝桥杯C++小朋友崇拜圈
蓝桥杯C++小朋友崇拜圈
110 0
献给每一位母亲
母 亲节,就不发技术相关专业的长篇大论了,来点抒情的。
140 0
献给每一位母亲
|
机器学习/深度学习 人工智能 算法
2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)G.希望(组合数学 bfs)
2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)G.希望(组合数学 bfs)
243 0
2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)G.希望(组合数学 bfs)
|
算法
2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)热身赛 B.这是一道大水题(树状数组)
2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)热身赛 B.这是一道大水题(树状数组)
160 0
2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)热身赛 B.这是一道大水题(树状数组)
|
Shell 计算机视觉
2021年中国大学生程序设计竞赛女生专场C. 连锁商店(状压dp 思维 贪心)
2021年中国大学生程序设计竞赛女生专场C. 连锁商店(状压dp 思维 贪心)
154 0