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执行get提交的方法
Apr 29 Python
六个窍门助你提高Python运行效率
Jun 09 Python
Python实现读取文件最后n行的方法
Feb 23 Python
Bottle框架中的装饰器类和描述符应用详解
Oct 28 Python
django rest framework之请求与响应(详解)
Nov 06 Python
Python实现matplotlib显示中文的方法详解
Feb 06 Python
Python生成器的使用方法和示例代码
Mar 04 Python
PyTorch搭建一维线性回归模型(二)
May 22 Python
django-allauth入门学习和使用详解
Jul 03 Python
python爬取网易云音乐热歌榜实例代码
Aug 07 Python
Python使用正则表达式实现爬虫数据抽取
Aug 17 Python
Python趣味挑战之实现简易版音乐播放器
May 28 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
GD输出汉字的函数的分析
2006/10/09 PHP
一个简单的PHP投票程序源码
2007/03/11 PHP
10个可以简化php开发过程的MySQL工具
2010/04/11 PHP
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
2011/01/06 PHP
PHP 多维数组的排序问题 根据二维数组中某个项排序
2011/11/09 PHP
php文件上传的例子及参数详解
2013/12/12 PHP
php冒泡排序与快速排序实例详解
2015/12/07 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
2016/06/30 PHP
php实现连接access数据库并转txt写入的方法
2017/02/08 PHP
提高 DHTML 页面性能
2006/12/25 Javascript
动态添加js事件实现代码
2009/03/12 Javascript
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
JavaScript中两个感叹号的作用说明
2011/12/28 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
javascript实现的弹出层背景置灰-模拟(easyui dialog)
2013/12/27 Javascript
js添加select下默认的option的value和text的方法
2014/10/19 Javascript
浅析使用BootStrap TreeView插件实现灵活配置快递模板
2016/11/28 Javascript
Vue.js上传图片到阿里云OSS存储的方法示例
2018/12/13 Javascript
vue 实现根据data中的属性值来设置不同的样式
2020/08/04 Javascript
[01:05:40]VG vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[05:53]敌法师的金色冠名ID"BurNIng",是传说,是荣耀
2020/07/11 DOTA
python的正则表达式re模块的常用方法
2013/03/09 Python
利用Python爬虫给孩子起个好名字
2017/02/14 Python
解决Python2.7读写文件中的中文乱码问题
2018/04/12 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
2019/06/21 Python
python实现矩阵和array数组之间的转换
2019/11/29 Python
Python虚拟环境的创建和包下载过程分析
2020/06/19 Python
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
HTML5的结构和语义(5):内嵌媒体
2008/10/17 HTML / CSS
Soft Cotton捷克:来自爱琴海棉花的浴袍
2017/02/01 全球购物
网络安全方面的面试题
2016/01/07 面试题
硕士研究生自我鉴定
2013/11/08 职场文书
英语商务邀请函范文
2014/01/16 职场文书
社会发展项目建议书
2014/08/25 职场文书
幼儿园食品安全责任书
2015/05/08 职场文书
刑事案件上诉状
2015/05/23 职场文书