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 相关文章推荐
tensorflow构建BP神经网络的方法
Mar 12 Python
浅谈DataFrame和SparkSql取值误区
Jun 09 Python
详解PyCharm配置Anaconda的艰难心路历程
Aug 13 Python
python 在屏幕上逐字显示一行字的实例
Dec 24 Python
Python实现的KMeans聚类算法实例分析
Dec 29 Python
python自定义函数实现一个数的三次方计算方法
Jan 20 Python
详解python做UI界面的方法
Feb 27 Python
处理Selenium3+python3定位鼠标悬停才显示的元素
Jul 31 Python
基于django传递数据到后端的例子
Aug 16 Python
Python pip配置国内源的方法
Feb 14 Python
python实现贪吃蛇游戏源码
Mar 21 Python
matplotlib交互式数据光标mpldatacursor的实现
Feb 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
关于IIS php调用com组件的权限问题
2012/01/11 PHP
PHP中预定义的6种接口介绍
2015/05/12 PHP
实例讲解yii2.0在php命令行中运行的步骤
2015/12/01 PHP
Yii2主题(Theme)用法详解
2016/07/23 PHP
JScript中的undefined和&quot;undefined&quot;的区别
2007/03/08 Javascript
JS 打印功能代码可实现打印预览、打印设置等
2014/10/31 Javascript
JavaScript中的依赖注入详解
2015/03/18 Javascript
jQuery图片轮播滚动切换代码分享
2020/04/20 Javascript
jQuery.trim() 函数及trim()用法详解
2015/10/26 Javascript
图解JavaScript中的this关键字
2020/05/28 Javascript
实例解析jQuery工具函数
2016/12/01 Javascript
js实现点击每个li节点,都弹出其文本值及修改
2016/12/15 Javascript
JS封装通过className获取元素的函数示例
2016/12/20 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
微信小程序form表单组件示例代码
2018/07/15 Javascript
对layui中表单元素的使用详解
2018/08/15 Javascript
JavaScript惰性载入函数实例分析
2019/03/27 Javascript
js实现图片推拉门效果代码实例
2019/05/18 Javascript
JS实现打字游戏
2019/12/17 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
wxPython中文教程入门实例
2014/06/09 Python
Python使用MONGODB入门实例
2015/05/11 Python
利用Python画ROC曲线和AUC值计算
2016/09/19 Python
Python socket套接字实现C/S模式远程命令执行功能案例
2018/07/06 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
2019/09/15 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
python如何控制进程或者线程的个数
2020/10/16 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
html5指南-3.如何实现html元素拖拽功能
2013/01/07 HTML / CSS
Expedia泰国:预订机票、酒店和旅游包(航班+酒店)
2016/09/27 全球购物
旷课检讨书大全
2014/01/21 职场文书
廉洁教育学习材料
2014/05/19 职场文书
2014年行政人事工作总结
2014/12/09 职场文书
民政局未婚证明
2015/06/15 职场文书
圣诞晚会主持词
2015/07/01 职场文书
关于JavaScript 中 if包含逗号表达式
2021/11/27 Javascript