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实现提取文章摘要的方法
Apr 21 Python
python清理子进程机制剖析
Nov 23 Python
机器学习10大经典算法详解
Dec 07 Python
浅谈Python对内存的使用(深浅拷贝)
Jan 17 Python
TensorFlow实现AutoEncoder自编码器
Mar 09 Python
Python OpenCV对本地视频文件进行分帧保存的实例
Jan 08 Python
Python学习笔记之函数的参数和返回值的使用
Nov 20 Python
PyQt5中多线程模块QThread使用方法的实现
Jan 31 Python
DataFrame.groupby()所见的各种用法详解
Jun 14 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
Aug 17 Python
python3实现无权最短路径的方法
May 12 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 面向对象 PHP5 中的常量
2010/05/05 PHP
深入file_get_contents函数抓取内容失败的原因分析
2013/06/25 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
2018/11/20 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
2019/01/23 PHP
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
2013/06/09 Javascript
jQuery 追加元素的方法如append、prepend、before
2014/01/16 Javascript
javascript break指定标签打破多层循环示例
2014/01/20 Javascript
Jquery 实现弹出层插件
2015/01/28 Javascript
javascript显示上周、上个月日期的处理方法
2016/02/03 Javascript
BootStrap智能表单实战系列(九)表单图片上传的支持
2016/06/13 Javascript
JS调用某段SQL语句的方法
2016/10/20 Javascript
常用原生js自定义函数总结
2016/11/20 Javascript
javascript 秒表计时器实现代码
2017/03/09 Javascript
JS中去掉array中重复元素的方法
2017/05/26 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
js实现图片上传并预览功能
2018/08/06 Javascript
实例详解带参数的 npm script
2019/05/28 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
python生成excel的实例代码
2017/11/08 Python
python实现随机梯度下降法
2020/03/24 Python
只需7行Python代码玩转微信自动聊天
2019/01/27 Python
Python简易版图书管理系统
2019/08/12 Python
wxPython+Matplotlib绘制折线图表
2019/11/19 Python
python多进程重复加载的解决方式
2019/12/13 Python
Python格式化输出--%s,%d,%f的代码解析
2020/04/29 Python
Python 字符串池化的前提
2020/07/03 Python
python爬虫---requests库的用法详解
2020/09/28 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
IE9对HTML5中部分属性不支持的原因分析
2014/10/15 HTML / CSS
KLOOK客路:发现更好玩的世界,预订独一无二的旅行体验
2016/12/16 全球购物
中国双语服务优势的在线购票及活动平台:247tickets
2018/10/26 全球购物
写演讲稿要注意的六件事
2014/01/14 职场文书
《争吵》教学反思
2014/02/15 职场文书
2014年市场部工作总结
2014/11/25 职场文书