亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python當中關于楊輝三角的列表實現

發布時間:2020-07-04 01:38:04 來源:網絡 閱讀:1346 作者:喜文靜的我 欄目:編程語言

楊輝三角
的一些理解:
感覺楊輝三角的實現至少在前兩行是特殊的。在后面的幾行代碼中我是這樣想的,可以用第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問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阳山县| 永定县| 池州市| 翼城县| 鄱阳县| 潜山县| 余姚市| 峡江县| 秦皇岛市| 昌邑市| 平南县| 佳木斯市| 岱山县| 太保市| 双牌县| 阿拉善右旗| 阜宁县| 老河口市| 泰兴市| 阿合奇县| 柞水县| 马公市| 潞城市| 新昌县| 娄底市| 黎平县| 陕西省| 徐州市| 泰来县| 西平县| 洛宁县| 象山县| 吉水县| 广昌县| 太谷县| 阿克苏市| 大埔区| 墨脱县| 罗田县| 平泉县| 华宁县|