python杨辉三角函数公式大全_python-1-杨辉三角算法总结
題目
計(jì)算楊輝三角前6行。
楊輝三角的三種方法
求楊輝三角的前6行。
1-1方法
先拼湊兩端的1,中間兩兩相加
triangle=[[1],[1,1]]
for i in range(2,6): # 外層循環(huán),i表示索引
cur=[1] # 拼頭部
pre=triangle[i-1] # 上一行
for j in range(len(pre)-1): # 內(nèi)層循環(huán),兩兩相加
cur.append(pre[j]+pre[j+1])
cur.append(1) # 拼尾部
triangle.append(cur)
print(triangle)
1-2方法
先拼湊兩端的1,中間兩兩相加
上一行的長(zhǎng)度,等于下一行的索引
triangle = []
n = 6
for i in range(n): # 外層循環(huán),i代表索引
cur=[1] # 拼頭部
if i==0: # 第一行特例處理
triangle.append(cur)
continue
for j in range(i-1): # i=2才能進(jìn)來(lái),i-1表示上一行
cur.append(triangle[i-1][j]+triangle[i-1][j+1])
cur.append(1) # 拼尾部
triangle.append(cur)
print(triangle)
2-1方法
新舊行交替方法,舊行尾部補(bǔ)0
利用索引游戲,兩兩相加,得到頭尾的1
n = 6
oldline = [] # 表示舊行
newline = [1] # 表示新行
length = 0
print(newline) # 打印第一行
for i in range(1,n): # 外層循環(huán),i新行索引
oldline = newline.copy() # 新行變舊行
newline.clear() # 新行變成空
oldline.append(0) # 舊行尾部加0
# i是新行的索引
# i-1就是舊行的索引
# 舊行后面加了0,索引舊行最大索引應(yīng)該是i
# 為了讓新行第一個(gè)數(shù)字為1
# 所以舊行應(yīng)該是從-1+0開(kāi)始,一直到i-1 + i
# j的取值應(yīng)該是從0到i,所以j從range(i+1)取值
for j in range(i+1):
newline.append(oldline[j-1]+oldline[j])
print(newline)
3-1方法
這里面用到兩個(gè)思想
第一個(gè)思想,先打出楊輝三角的形狀,格子先打出來(lái),占位
第二個(gè)思想,對(duì)稱賦值,減少循環(huán),提升效率
triangle = []
n = 6
for i in range(n): # i表示每一行的索引
row = [1] # 開(kāi)始的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才能進(jìn)來(lái)
val = triangle[i-1][j-1] + triangle[i-1][j]
row[j] = val # 這是新行的每個(gè)元素
# 如果2j!=i,證明是偶數(shù)行,要找對(duì)稱位置賦值
# 如果2j = i,證明是奇數(shù)行,這時(shí)候j是中點(diǎn),無(wú)對(duì)稱位置,跳過(guò)
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)
楊輝三角的解題思想總結(jié):
第一種方法,根據(jù)上一行湊下一行,先湊頭尾,再湊中間
第二種方法,根據(jù)上一行湊下一行,上一行尾部加0,利用索引游戲,頭尾中間都湊了
第三種方法,先打印占位形狀,利用對(duì)稱賦值,提升效率
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的python杨辉三角函数公式大全_python-1-杨辉三角算法总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 手机拍人像,不是越低就越好
- 下一篇: 字符动图_手把手教你做一个python+