python实现杨辉三角的几种方法代码实例


Posted in Python onMarch 02, 2021

python实现杨辉三角的几种方法代码实例

方法一:迭代

def triangle_1(x):
 """
 :param x: 需要生成的杨辉三角行数
 :return:
 """
 triangle = [[1], [1, 1]] # 初始化杨辉三角
 n = 3 # 从第三行开始计数,逐行添加
 while n <= x:
  for i in range(0, n-1):
   if i == 0:
    # 添加初始列表[1,1],杨辉三角每行的首位和末位必为1
    triangle.append([1, 1])
   else:
    # 逐位计算,并插入初始列表中
    triangle[n-1].insert(i, triangle[n - 2][i] + triangle[n - 2][i - 1])
  n += 1
 return triangle
x = 11
triangle = triangle_1(x)
 
# 遍历结果,逐行打印
for i in range(x):
 print(' '.join(str(triangle[i])).center(100)) # 转为str,居中显示

python实现杨辉三角的几种方法代码实例

方法二:生成器

def triangle_2(n):
 """
 :param n: 需要生成的杨辉三角行数
 :return: 
 """
 triangle = [1] # 初始化杨辉三角
 for i in range(n):
  yield triangle
  triangle.append(0) # 在最后一位加个0,用于计算下一行
  triangle = [triangle[i] + triangle[i - 1] for i in range(len(triangle))]
# 从生成器取值
for i in triangle_5(10):
 print(''.join(str(i)).center(100)) # 格式化输出

python实现杨辉三角的几种方法代码实例

方法三:递归

杨辉三角特性:

【1,1】=【0,1】+【1,0】

【1,2,1】=【0,1,1】+【1,1,0】

【1,3,3,1】=【0,1,2,1】+【1,2,1,0】

【1,4,6,4,1】=【0,1,3,3,1】+【1,3,3,1,0】

第n行等于第n-1行分别首尾补0,然后按位相加

def triangle_4(n):
 """
 :param n:需要生成的杨辉三角行数
 :return:
 """
 triangle = [1] # 初始化杨辉三角
 if n == 0:
  return triangle
 return [x+y for x, y in zip([0] + triangle_4(n - 1), triangle_4(n - 1) + [0])]
for i in range(10):
 print(''.join(str(triangle_4(i))).center(100))

 python实现杨辉三角的几种方法代码实例

到此这篇关于python实现杨辉三角的几种方法代码实例的文章就介绍到这了,更多相关python实现杨辉三角内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
详解Python中的循环语句的用法
Apr 09 Python
python中dir函数用法分析
Apr 17 Python
Python贪吃蛇游戏编写代码
Oct 26 Python
Python实现简单的HttpServer服务器示例
Sep 25 Python
详解如何使用Python编写vim插件
Nov 28 Python
python编程测试电脑开启最大线程数实例代码
Feb 09 Python
Python中shapefile转换geojson的示例
Jan 03 Python
Python Numpy 实现交换两行和两列的方法
Jun 26 Python
pandas 如何分割字符的实现方法
Jul 29 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
Sep 16 Python
Django实现网页分页功能
Oct 31 Python
wxpython绘制音频效果
Nov 18 Python
python爬虫破解字体加密案例详解
Mar 02 #Python
python包的导入方式总结
Mar 02 #Python
numpy实现RNN原理实现
Mar 02 #Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
Mar 02 #Python
python Protobuf定义消息类型知识点讲解
Mar 02 #Python
Django项目在pycharm新建的步骤方法
Mar 02 #Python
基于注解实现 SpringBoot 接口防刷的方法
Mar 02 #Python
You might like
桌面中心(四)数据显示
2006/10/09 PHP
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
2014/09/27 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
2015/02/12 PHP
php之static静态属性与静态方法实例分析
2015/07/30 PHP
PHP弱类型的安全问题详细总结
2016/09/25 PHP
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
JS日历 推荐
2006/12/03 Javascript
javascript动画对象支持加速、减速、缓入、缓出的实现代码
2012/09/30 Javascript
基于jQuery仿淘宝产品图片放大镜特效
2020/10/19 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
2016/07/01 Javascript
轻松掌握JavaScript状态模式
2016/09/07 Javascript
JavaScript 对象详细整理总结
2016/09/29 Javascript
Javascript中return的使用与闭包详解
2017/01/11 Javascript
nodejs入门教程二:创建一个简单应用示例
2017/04/24 NodeJs
node.js + socket.io 实现点对点随机匹配聊天
2017/06/30 Javascript
详解基于vue-cli优化的webpack配置
2017/11/06 Javascript
微信小程序表单验证功能完整实例
2017/12/01 Javascript
vue如何截取字符串
2019/05/06 Javascript
对node通过fs模块判断文件是否是文件夹的实例讲解
2019/06/10 Javascript
python K近邻算法的kd树实现
2018/09/06 Python
解决Shell执行python文件,传参空格引起的问题
2018/10/30 Python
Python对象与引用的介绍
2019/01/24 Python
ActiveMQ:使用Python访问ActiveMQ的方法
2019/01/30 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
使用Python做定时任务及时了解互联网动态
2019/05/15 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
python实现快速文件格式批量转换的方法
2020/10/16 Python
Python的logging模块基本用法
2020/12/24 Python
美国葡萄酒网上商店:Martha Stewart Wine Co.
2019/03/17 全球购物
Myprotein瑞士官方网站:运动营养和健身网上商店
2019/09/25 全球购物
高中课前三分钟演讲稿
2014/09/13 职场文书
十八大标语口号
2014/10/09 职场文书
学习十八大宣传标语
2014/10/09 职场文书
2014年技术部工作总结
2014/12/12 职场文书
2016年学校爱国卫生月活动总结
2016/04/06 职场文书