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实现分析apache和nginx日志文件并输出访客ip列表的方法
Apr 04 Python
操作Windows注册表的简单的Python程序制作教程
Apr 07 Python
Python实现数据库编程方法详解
Jun 09 Python
Python统计文件中去重后uuid个数的方法
Jul 30 Python
深入解析Python中的线程同步方法
Jun 14 Python
Python基于socket模块实现UDP通信功能示例
Apr 10 Python
python操作excel的包(openpyxl、xlsxwriter)
Jun 11 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
Nov 04 Python
python3实现弹弹球小游戏
Nov 25 Python
python如何基于redis实现ip代理池
Jan 17 Python
Python3使用xlrd、xlwt处理Excel方法数据
Feb 28 Python
详解python百行有效代码实现汉诺塔小游戏(简约版)
Oct 30 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的ob_start();控制您的浏览器cache!
2007/02/14 PHP
dedecms模板标签代码官方参考
2007/03/17 PHP
php存储过程调用实例代码
2013/02/03 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
2013/11/07 PHP
PHP用户注册邮件激活账户的实现代码
2017/05/31 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
2013/09/16 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
javascript监听鼠标滚轮事件浅析
2014/06/05 Javascript
angularJS 入门基础
2015/02/09 Javascript
jQuery子窗体取得父窗体元素的方法
2015/05/11 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
微信小程序 页面跳转传值实现代码
2017/07/27 Javascript
[01:19:33]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第一场 2月2日
2021/03/11 DOTA
Python中logging模块的用法实例
2014/09/29 Python
基于python内置函数与匿名函数详解
2018/01/09 Python
python框架中flask知识点总结
2018/08/17 Python
CentOS7安装Python3的教程详解
2019/04/10 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
Python三维绘图之Matplotlib库的使用方法
2020/09/20 Python
python爬虫基础之urllib的使用
2020/12/31 Python
python中的unittest框架实例详解
2021/02/05 Python
css3绘制天猫logo实现代码
2012/11/06 HTML / CSS
html5 乒乓球(碰撞检测)实例二
2013/07/25 HTML / CSS
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
澳大利亚排名第一的露营和户外设备在线零售商:Outbax
2020/05/06 全球购物
几道Web/Ajax的面试题
2016/11/05 面试题
客房主管岗位职责
2013/12/09 职场文书
个人自我评价分享
2013/12/20 职场文书
应用艺术专业个人的自我评价
2014/01/03 职场文书
九一八事变演讲稿
2014/09/05 职场文书
维稳承诺书
2015/01/20 职场文书
妈妈再爱我一次观后感
2015/06/08 职场文书
2015年暑期社会实践方案
2015/07/14 职场文书
JavaScript实现贪吃蛇游戏
2021/06/16 Javascript
Python实现8种常用抽样方法
2021/06/27 Python