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
在Mac OS系统上安装Python的Pillow库的教程
Nov 20 Python
python中函数默认值使用注意点详解
Jun 01 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
Nov 20 Python
python简单实现操作Mysql数据库
Jan 29 Python
python实战教程之自动扫雷
Jul 13 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
Oct 26 Python
django-rest-framework 自定义swagger过程详解
Jul 18 Python
Python 面向对象之类class和对象基本用法示例
Feb 02 Python
Tensorflow不支持AVX2指令集的解决方法
Feb 03 Python
Python-for循环的内部机制
Jun 12 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
Dec 03 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判断数组是否为空的常用方法(五种方法)
2017/02/08 PHP
用YUI做了个标签浏览效果
2007/02/20 Javascript
Javascript 生成指定范围数值随机数
2009/01/09 Javascript
javascript Array对象基础知识小结
2010/11/16 Javascript
Jquery中获取iframe的代码
2011/01/11 Javascript
javascript SpiderMonkey中的函数序列化如何进行
2012/12/05 Javascript
jquery 缓存问题的几个解决方法
2013/11/11 Javascript
在JavaScript里防止事件函数高频触发和高频调用的方法
2014/09/06 Javascript
AngularJS动态加载模块和依赖的方法分析
2016/11/08 Javascript
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
js中document.write和document.writeln的区别
2018/03/11 Javascript
vue移动UI框架滑动加载数据的方法
2018/03/12 Javascript
vue表单自定义校验规则介绍
2018/08/28 Javascript
Vue-Router的使用方法
2018/09/05 Javascript
解决angularjs service中依赖注入$scope报错的问题
2018/10/02 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
Vue仿百度搜索功能
2020/12/28 Vue.js
[04:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster 选手采访
2021/03/11 DOTA
Python实现一个简单的MySQL类
2015/01/07 Python
Django卸载之后重新安装的方法
2017/03/15 Python
SVM基本概念及Python实现代码
2017/12/27 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
2018/01/24 Python
python爬虫获取淘宝天猫商品详细参数
2020/06/23 Python
利用Python代码实现数据可视化的5种方法详解
2018/03/25 Python
使用Python快速制作可视化报表的方法
2019/02/03 Python
Django 自定义权限管理系统详解(通过中间件认证)
2020/03/11 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
2020/06/11 Python
python实现学生信息管理系统(精简版)
2020/11/27 Python
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
HTML5实现分享到微信好友朋友圈QQ好友QQ空间微博二维码功能
2018/01/03 HTML / CSS
Nayomi官网:沙特阿拉伯王国睡衣和内衣品牌
2020/12/19 全球购物
保加利亚服装和鞋类购物网站:Bibloo.bg
2020/11/08 全球购物
中级会计职业生涯规划范文
2014/01/16 职场文书
作文评语集锦大全
2014/04/23 职场文书
2014年小学工作总结
2014/11/26 职场文书
2016北大自主招生自荐信模板
2016/01/28 职场文书