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实现监控linux性能及进程消耗性能的方法
Jul 25 Python
Python 创建子进程模块subprocess详解
Apr 08 Python
在Django中创建第一个静态视图
Jul 15 Python
Python OpenCV处理图像之图像像素点操作
Jul 10 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
Jul 01 Python
Django中间件基础用法详解
Jul 18 Python
Pytorch自己加载单通道图片用作数据集训练的实例
Jan 18 Python
tensorflow之并行读入数据详解
Feb 05 Python
Python和Bash结合在一起的方法
Nov 13 Python
python 录制系统声音的示例
Dec 21 Python
Python OpenCV 图像平移的实现示例
Jun 04 Python
Python中的程序流程控制语句
Feb 24 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网站在线人数统计
2008/04/09 PHP
php trim 去除空字符的定义与语法介绍
2010/05/31 PHP
基于PHP实现商品成交时发送短信功能
2016/05/11 PHP
PHP中OpenSSL加密问题整理
2017/12/14 PHP
php获取手机端的号码以及ip地址实例代码
2018/09/12 PHP
PHP中的self关键字详解
2019/06/23 PHP
js下弹出窗口的变通
2007/04/18 Javascript
Js操作DOM元素及获取浏览器高宽的简单方法
2016/09/08 Javascript
JavaScript获取移动设备型号的实现代码(JS获取手机型号和系统)
2018/03/10 Javascript
深入理解Vue Computed计算属性原理
2018/05/29 Javascript
JavaScript对象拷贝与赋值操作实例分析
2018/12/10 Javascript
浅谈vuex actions和mutation的异曲同工
2018/12/13 Javascript
微信小程序实现上传word、txt、Excel、PPT等文件功能
2019/05/23 Javascript
关于NodeJS中的循环引用详解
2019/07/23 NodeJs
微信小程序 动态修改页面数据及参数传递过程详解
2019/09/27 Javascript
jQuery 选择方法及$(this)用法实例分析
2020/05/19 jQuery
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
Python设计模式之观察者模式实例
2014/04/26 Python
python基于右递归解决八皇后问题的方法
2015/05/25 Python
python进阶之多线程对同一个全局变量的处理方法
2018/11/09 Python
TensorFlow基本的常量、变量和运算操作详解
2020/02/03 Python
详细分析Python collections工具库
2020/07/16 Python
优衣库美国官网:UNIQLO美国
2018/04/14 全球购物
拉夫劳伦爱尔兰官方网站:Ralph Lauren爱尔兰
2020/04/10 全球购物
学生会宣传部部长竞选演讲稿
2014/04/25 职场文书
幼儿园课题实施方案
2014/05/14 职场文书
副处级干部考察材料
2014/05/17 职场文书
基层党支部公开承诺书
2014/05/29 职场文书
相亲活动方案
2014/08/26 职场文书
教师自查自纠工作情况报告
2014/10/29 职场文书
2014年销售助理工作总结
2014/12/01 职场文书
求职自荐信怎么写
2015/03/04 职场文书
医院病假条范文
2015/08/17 职场文书
销售口号霸气押韵
2015/12/24 职场文书
Python自动化测试PO模型封装过程详解
2021/06/22 Python
MySQL导致索引失效的几种情况
2022/06/25 MySQL