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删除特定文件的方法
Jul 30 Python
python调用fortran模块
Apr 08 Python
Python实现查找字符串数组最长公共前缀示例
Mar 27 Python
详解用Python实现自动化监控远程服务器
May 18 Python
使用Python实现跳帧截取视频帧
May 31 Python
Puppeteer使用示例详解
Jun 20 Python
linux环境中没有网络怎么下载python
Jul 07 Python
django 控制页面跳转的例子
Aug 06 Python
Python爬取破解无线网络wifi密码过程解析
Sep 17 Python
Python爬虫爬取Bilibili弹幕过程解析
Oct 10 Python
python如何将图片转换素描画
Sep 08 Python
使用Django实现商城验证码模块的方法
Jun 01 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结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
PHP结合Jquery和ajax实现瀑布流特效
2016/01/07 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
2019/04/10 PHP
JavaScript Distilled 基础知识与函数
2010/04/07 Javascript
也说JavaScript中String类的replace函数
2011/09/22 Javascript
设置iframe的document.designMode后仅Firefox中其body.innerHTML为br
2012/02/27 Javascript
JavaScript弹出新窗口后向父窗口输出内容的方法
2015/04/06 Javascript
jQuery实现tab选项卡效果的方法
2015/07/08 Javascript
js实现C#的StringBuilder效果完整实例
2015/12/22 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
如何使用headjs来管理和异步加载js
2016/11/29 Javascript
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
浅析node应用的timing-attack安全漏洞
2018/02/28 Javascript
React组件重构之嵌套+继承及高阶组件详解
2018/07/19 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
微信小程序之数据绑定原理解析
2019/08/14 Javascript
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
python使用urlparse分析网址中域名的方法
2015/04/15 Python
Python callable()函数用法实例分析
2018/03/17 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
2018/04/10 Python
将Python字符串生成PDF的实例代码详解
2019/05/17 Python
Python列表的切片实例讲解
2019/08/20 Python
pytorch forward两个参数实例
2020/01/17 Python
理肤泉加拿大官网:La Roche-Posay加拿大
2018/07/06 全球购物
应届生文秘专业个人自荐信格式
2013/09/21 职场文书
《猴子种树》教学反思
2014/02/14 职场文书
公司营业员的自我评价
2014/03/04 职场文书
初二学习计划书范文
2014/04/27 职场文书
综治宣传月活动总结
2014/04/28 职场文书
节约用水演讲稿
2014/05/21 职场文书
门面房租房协议书
2014/12/01 职场文书
2014年幼儿园园长工作总结
2014/12/17 职场文书
环卫工人慰问信
2015/02/15 职场文书
考研英语辞职信
2015/05/13 职场文书
python调用ffmpeg命令行工具便捷操作视频示例实现过程
2021/11/01 Python