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中的反转字符串问题
Oct 24 Python
Python实现Linux中的du命令
Jun 12 Python
python在非root权限下的安装方法
Jan 23 Python
解决phantomjs截图失败,phantom.exit位置的问题
May 17 Python
Python实现绘制双柱状图并显示数值功能示例
Jun 23 Python
Python编程深度学习绘图库之matplotlib
Dec 28 Python
Appium+Python自动化测试之运行App程序示例
Jan 23 Python
Django框架实现的普通登录案例【使用POST方法】
May 15 Python
python2和python3在处理字符串上的区别详解
May 29 Python
关于Python 的简单栅格图像边界提取方法
Jul 05 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
Sep 15 Python
python编程学习使用管道Pipe编写优化代码
Nov 20 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
使用PHP和XSL stylesheets转换XML文档
2006/10/09 PHP
url decode problem 解决方法
2011/12/26 PHP
PHP中使用file_get_contents post数据代码例子
2015/02/13 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
2017/06/07 PHP
JS中typeof与instanceof之间的区别总结
2013/11/14 Javascript
清除div下面的所有标签的方法
2014/02/17 Javascript
Javascript验证上传图片大小[前台处理]
2014/07/18 Javascript
JQuery拖动表头边框线调整表格列宽效果代码
2014/09/10 Javascript
nodejs学习笔记之路由
2017/03/27 NodeJs
JavaScript实现简单评论功能
2017/08/17 Javascript
JS字符串去除连续或全部重复字符的实例
2018/03/08 Javascript
vue 2.1.3 实时显示当前时间,每秒更新的方法
2018/09/16 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
2019/08/20 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
python实现登陆知乎获得个人收藏并保存为word文件
2015/03/16 Python
python查询mysql,返回json的实例
2018/03/26 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
2018/05/21 Python
python学生管理系统学习笔记
2019/03/19 Python
Python3安装psycopy2以及遇到问题解决方法
2019/07/03 Python
python django生成迁移文件的实例
2019/08/31 Python
python实现在多维数组中挑选符合条件的全部元素
2019/11/26 Python
Python实现企业微信机器人每天定时发消息实例
2020/02/25 Python
解决jupyter notebook显示不全出现框框或者乱码问题
2020/04/09 Python
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
土木工程专业大学毕业生求职信
2013/10/13 职场文书
一年级家长会邀请函
2014/01/25 职场文书
2014年德育工作总结
2014/11/20 职场文书
个人党性分析材料
2014/12/19 职场文书
放射科岗位职责
2015/02/14 职场文书
教师党员个人自我评价
2015/03/04 职场文书
学习型家庭事迹材料(2016精选版)
2016/02/29 职场文书
Nginx服务器如何设置url链接
2021/03/31 Servers
Window server中安装Redis的超详细教程
2021/11/17 Redis
Python绘制散乱的点构成的图的方法
2022/04/21 Python
Win11 Build 22000.829更新补丁KB5015882发布(附更新修复内容汇总)
2022/07/15 数码科技