python杨辉三角函数公式大全_python-1-杨辉三角算法总结

题目

计算杨辉三角前6行。

杨辉三角的三种方法

求杨辉三角的前6行。

1-1方法

先拼凑两端的1,中间两两相加

triangle=[[1],[1,1]]

for i in range(2,6): # 外层循环,i表示索引

cur=[1] # 拼头部

pre=triangle[i-1] # 上一行

for j in range(len(pre)-1): # 内层循环,两两相加

cur.append(pre[j]+pre[j+1])

cur.append(1) # 拼尾部

triangle.append(cur)

print(triangle)

1-2方法

先拼凑两端的1,中间两两相加

上一行的长度,等于下一行的索引

triangle = []

n = 6

for i in range(n): # 外层循环,i代表索引

cur=[1] # 拼头部

if i==0: # 第一行特例处理

triangle.append(cur)

continue

for j in range(i-1): # i=2才能进来,i-1表示上一行

cur.append(triangle[i-1][j]+triangle[i-1][j+1])

cur.append(1) # 拼尾部

triangle.append(cur)

print(triangle)

2-1方法

新旧行交替方法,旧行尾部补0

利用索引游戏,两两相加,得到头尾的1

n = 6

oldline = [] # 表示旧行

newline = [1] # 表示新行

length = 0

print(newline) # 打印第一行

for i in range(1,n): # 外层循环,i新行索引

oldline = newline.copy() # 新行变旧行

newline.clear() # 新行变成空

oldline.append(0) # 旧行尾部加0

# i是新行的索引

# i-1就是旧行的索引

# 旧行后面加了0,索引旧行最大索引应该是i

# 为了让新行第一个数字为1

# 所以旧行应该是从-1+0开始,一直到i-1 + i

# j的取值应该是从0到i,所以j从range(i+1)取值

for j in range(i+1):

newline.append(oldline[j-1]+oldline[j])

print(newline)

3-1方法

这里面用到两个思想

第一个思想,先打出杨辉三角的形状,格子先打出来,占位

第二个思想,对称赋值,减少循环,提升效率

triangle = []

n = 6

for i in range(n): # i表示每一行的索引

row = [1] # 开始的1

for k in range(i): # 中间填0,尾部填1

row.append(1) if k == i-1 else row.append(0)

triangle.append(row)

if i==0:

continue

for j in range(1,i//2+1): # n=3才能进来

val = triangle[i-1][j-1] + triangle[i-1][j]

row[j] = val # 这是新行的每个元素

# 如果2j!=i,证明是偶数行,要找对称位置赋值

# 如果2j = i,证明是奇数行,这时候j是中点,无对称位置,跳过

if 2j != i:

row[i-j] = val

print(triangle)

3-2方法

与3-1相同,不同的是,用1占位

triangle=[]

n = 6

for i in range(n):

row = [1]*(i+1)

triangle.append(row)

if i == 0:

continue

for j in range(1,i//2+1):

val = triangle[i-1][j-1]+triangle[i-1][j]

row[j]=val

if 2j!=i:

row[i-j]=val

print(triangle)

杨辉三角的解题思想总结:

第一种方法,根据上一行凑下一行,先凑头尾,再凑中间

第二种方法,根据上一行凑下一行,上一行尾部加0,利用索引游戏,头尾中间都凑了

第三种方法,先打印占位形状,利用对称赋值,提升效率

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245213.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html5手机电商网页设计代码_Html5网站制作,干货!20个视觉体验和内容俱佳的优秀网页设计...

如何创建一个网页?“Html5网站制作”和“灵感干货!20个视觉、体验和内容俱佳的优秀网页设计”有什么关系和内在关联?在图片方面,有三个具体方案:图片地图、Css Sprites、内联图片三种,最值得关注的是 Css S…

2021 高考 成绩查询,精准预测!2021全国大学录取分数线表查询

高考分数对应大学层次等级随着各大高校的疯狂扩招,大学的门槛近年来越来越低,虽然还不至于达到普及大学的程度,但对于成绩不是太差的高中生而言,上大学确实是一件轻松加愉快的事情。在高考总分750的情况下,文科生551分…

python 打包工具_介绍一款Python打包工具(py2exe)

下面小编就为大家带来一篇Python之py2exe打包工具详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧下载Python对应版本的py2exe,使用这个工具可以将自己的程序打包成exe文件。使用这个工具需要写一个用于打…

python图像处理opencv_使用Python+OpenCV进行图像处理(二)| 视觉入门

【前言】图像预处理对于整个图像处理任务来讲特别重要。如果我们没有进行恰当的预处理,无论我们有多么好的数据也很难得到理想的结果。 本篇是视觉入门系列教程的第二篇。整个视觉入门系列内容如下: 基本的图像处理与滤波技术。 从特征检测到人脸检测。 …

html文本设置float,css怎么float(浮动)?

在css中,浮动是一种使元素脱离文档流的方法,会使元素向左或向右移动,其周围的元素也会重新排列。Float(浮动),往往是用于图像,但它在布局时一样非常有用。浮动是一种非常有用的布局方式,它能够改变页面中对…

字符动图_手把手教你做一个python+matplotlib的炫酷的数据可视化动图

1.数据可视化动图,是数据可视化的高级显示,最近很流行。2.比如下面将告诉你如何制作一个如下的数据可视化动图。3.例:3.1 准备一组数据,虚拟的csv资料,对应关系如下4个项目:namegroupyearvaluename&#xf…

runtime 分类结构体_iOS 读懂runtime基础(一)

目录前言本文会详细描述Objective-C运行时的各对象数底层据结构、类和原类、消息传递与转发、动态方法等技术方案. 文中底层代码实现均来自Apple open source; 本文篇幅较长, 文中描述加之有个人的一点理解, 主要用作记录和学习之用, 文笔粗陋, 技术菜鸡, 如有错误或不妥之处, …

weblogic jms消息 删除_消息队列与消息中间件概述:消息中间件核心概念与技术选型...

什么是消息?“消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。什么是队列?队列(Queue)队列是一种先进先出(FIFO)的数据结构。什么是消息队列&#xff…

mod游戏什么意思计算机,MOD运算

mod运算,即求余运算,是在整数运算中求一个整数 x 除以另一个整数y的余数的运算,且不考虑运算的商。在计算机程序设计中都有MOD运算,其格式为: mod(nExp1,nExp2),即是两个数值表达式作除法运算后的余数。中文…

伽马分布极大似然估计_一文通俗解释极大似然估计

我们都知道机器学习的大致流程是通过建立一个合理的模型学习现有数据集,然后通过该模型去完成特定的任务。其中每个模型都包含自身的一组特定参数,而这组参数决定着模型的本身。但这里存在一个很关键的一个问题,就是我们如何去找到一组参数使…

html json解析插件,jQuery插件jsonview展示json数据

本文实例为大家分享了jQuery插件jsonview展示json数据的具体代码,供大家参考,具体内容如下项目中要展示json数据,自己写一套html来展示太麻烦,可以使用jquery的插件jsonview来解决这个问题。首先,去jquery官网下载最新…

python3.5安装pygame_python怎么安装pygame

Pygame 是一种流行的 Python 包,用于编写游戏-鼓励学生学习编程,同时创建有趣的东西。 Pygame 在新窗口中显示图形,因此它将 无法在 WSL 的命令行方法下运行。 但是,如果您通过本教程中所述的 Microsoft Store 安装了 Python&…

所属的用户_关于chmod(变更用户对此文件的相关权限)超详细说明,小白秒懂

Linux下一切都是文件,通过ls -l或者别名ll可以查看文件的详细信息:drwxr-xr-x 第一个字符d指的是目录文件;第2-4个字符rwx:指的是u(user,owner)对这个文件具有可读可写可执行的权限;第5-7字符r-x:指的是g(group)对这个文件具有可读可执行权限&#xff1b…

台式计算机计量单位,计算机的计量单位以及常见的数据类型

为什么会写这篇文章,面试官问数据类型占字节大小干什么。实际开发中,你肯定计算预估过一些数据具体要占多少磁盘,或者是内存。如果你没有不去在意这些东西,很多服务器资源,都会被无形的浪费掉。我们知道计算机的世界其…

cad线性标注命令_CAD常用标注快捷键和命令

点击上方 “CAD自学网 ” → 点击右上角“...” → 点选“设为星标 ★ ”为CAD自学网加上星标,即可及时收到干货啦!左下角阅读原文看CAD视频站长推荐:1、CAD2014快速精通进阶提高教程:点击查看 2、室内设计全屋定制全套视频教程&…

计算机怎么设置网络共享,局域网共享设置,教您电脑怎么设置局域网共享

前两天,遇到位朋友说他刚买了台新的电脑,加上原来家里原有的两台电脑了,就三台了,现在想要三台电脑都能够进行一个共享职员的这么设置,就是不知道如何在局域网里怎么设置共享,下面,小编就来跟大…

python中的类装饰器应用场景_Python 自定义装饰器使用写法及示例代码

1、Python装饰器简介 python的装饰器就是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。简单的说装饰器就是一个用来返回函数的函数。 它经常用于有切面需求的场景,比如&…

html引用外部导入式css文件夹,css文件内引用外部资源文件的相对路径

1.default.css文件内容(位于css文件夹下):.ClassName .ClassName .ClassName.page-sidebar .sidebar-search .submit {--该图片相对于css文件所在的位置。不是使用本css文件的html文件位置。background-image: url(../image/search-icon.png);}2.使用本css文件的htm…

京东五星电器送扫地机器人_家电也流行“套餐”,京东五星电器吹响国庆家装“集结号”...

“70吋超薄激光电视、大容量多门法式冰箱、烘干一体滚筒洗衣机、蒸烤一体机、扫地机器人……”一系列的新房采购清单让宿迁的谭小姐直呼头痛,“挑选品牌和型号,比较价格,还要想着跟装修风格是否搭配,好浪费时间。”在线下实体店迎…

c++设置单元格填充色_格式函数text,设置自定义格式的万金油

在日常的数据处理统计中,我们知道,数据格式标准统一,是很重要的前提,如果数据混乱,那么,在后期的数据处理分析,excel就会耍脾气出错的。所以设置好数据格式,是相当重要的。今天&…