Python当中关于杨辉三角的列表实现
admin
2023-07-21 10:41:53
0

杨辉三角
的一些理解:
感觉杨辉三角的实现至少在前两行是特殊的。在后面的几行代码中我是这样想的,可以用第n项加第n+1项。两边再加上1就可以了罢。两边如果都这么做的话可以实现对称的操作。

让我们来实现吧。在实现的过程中想套用一层循环发现难以实现,用两层试试看。

yh=[[1],[1,1]]
for i in range(2,6):
line=[1]
ls=yh[i-1]
for j in range(len(ls)-1):
line.append(ls[j]+ls[j+1])
line.append(1)
yh.append(line)
print(yh)

#打印n行的杨辉三角
a=int(input('请输入第几行'))
y=[[1],[1,1]]

for i in range(a-2):
n=y[i+1]
long=len(n)
line=[1]
for j in range(long-1):
line.append(n[j]+n[j+1])
line.append(1)
y.append(line)
print(line)

关于补零的一些想法,在杨辉三角当中,可以将左右两边当成多了一个零,在进入下一行的时候就可以看成0+1=1,同理右边也是一样,在实际写代码中,开始确实是左边多一个[0]

,右边多一个[0],但实际操作下来,左边的[0]可以省去,因为在python当中是有独特的负索引机制,在右边的最后一项可以看做是[-1]项,这样从0开始迭代的话可以从i-1开始

迭代,是一个python的独特思想。

y=[[1]]

for i in range(1,6):
n=y[i-1]+[0]
l=[]

for j in range (i+1):
    l.append(n[j-1]+n[j])

y.append(l)

print(y)

如果用独特的负索引的话,用对称性也是可以做出来的也是从-1项开始做起一直做到中间,这就需要在一开始的时候就创建一个刚刚好的列表空间,然后将元素一个一个填充进去

,这种方法就叫做对称法
y=[[1]]
for i in range(5):

n=y[i]+[0]

line=[1]*(i+2)

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

    line[j]=n[j-1]+n[j]

line[-j-1]=line[j]    

y.append(line)

print(y)

其实有这个想法之后实现代码并不困难,其实这种方法只是一种思想,这更多是为最后一种方法铺路,前面三种方法可以看出都是引用一个新列表然后将新列表填充到旧列表当中,如果将旧列表直接copy一个新列表这样可以省去许多冗余量,我们称这第四种方法为单列覆盖法。

y=[1]*6
for i in range(6):
long=6-i
tmp=1

for j in range (1,i//2+1):
    val=y[j]+tmp
    tmp=y[j]
    y[j]=val
    y[-long-1]=val
print(y[:i+1])

在这里引用了一个中间变量tmp因为如果不引用的话会造成数据覆盖,会有人在实际操作中会判断是奇数列还是偶数列,但是我们在实验中可以看到其实判断是多余的,因为完全可以在多余列覆盖即可。
到现在杨辉三角就差不多完成了。

相关内容

热门资讯

三天内连失两位传奇:谷歌的AI... 当定义了AI过去的公司,正在失去定义它未来的人。6月18日,Transformer论文核心作者、Go...
滴露广告台词引争议被指物化女性... 极目新闻记者 舒平近日,日化品牌滴露一则衣物消毒液广告引发全网热议。广告中“我未来的老婆可不行”“干...
联通云推出专属上云福利活动 6月18日,联通云面向开发者、内容创作者与中小企业,推出AI视频生成模型HappyHorse免费额度...
存储价格暴涨超300%!手机电... 快科技6月21日消息,不管普通消费者能不能接受,手机、电脑等主流消费电子产品的第二轮涨价潮已经实打实...
固态电池还太早?这家公司偏要投... 华夏能源网获悉,近日,上海市嘉定区安亭镇人民政府与国祥世纪新能源集团(以下简称“国祥新能源”)举行战...
法国鹅肝行业协会主席:愁啊,没... 【文/观察者网 齐倩】这几年,法国食品行业两眼一睁,就是唉声叹气,愁完中国鱼子酱,又开始愁中国鹅肝。...
陈吉仲狂吹台芒在法国卖高价,林... 海峡导报综合报道 台陆委会发言人梁文杰日前一席“凤梨释迦台湾人几乎不吃、完全仰大陆鼻息的农产品”的说...
白宫宴会厅越建越贵,特朗普被曝... 白宫宴会厅越建越贵,特朗普被曝动用公款,这到底是怎么回事?特朗普为何对宴会厅如此执着?特朗普心心念念...
外墙防水施工多少钱一平方 外墙防水多少钱一平方米45-70元1、需要根据当地市场行情及施工环境来估算,一线城市人工费相对来说比...
南宁外墙渗水防水补漏多少钱 其他2条回答 回复者:花与少年cn 外墙防水的话,如果漏的情况不多。可以建议用补漏剂,这样节约成...