楊輝三角的幾種 Python 實現方法

2021-09-23 10:37:35 字數 3118 閱讀 3877

楊輝三角,是二項式係數在三角形中的一種幾何排列,中國南宋數學家楊輝2023年所著的《詳解九章演算法》一書**現

特點每個數等於它上方兩數之和。

每行數字左右對稱,由1開始逐漸變大。

第n行的數字有n項。

第n行的m個數可表示為 c(n-1,m-1),即為從n-1個不同元素中取m-1個元素的組合數。

第n行的第m個數和第n-m+1個數相等 ,為組合數性質之一。

每個數字等於上一行的左右兩個數字之和。可用此性質寫出整個楊輝三角。即第n+1行的第i個數等於第n行的第i-1個數和第i個數之和,這也是組合數的性質之一。即 c(n+1,i)=c(n,i)+c(n,i-1)。

(a+b)n的展開式中的各項係數依次對應楊輝三角的第(n+1)行中的每一項。

將第2n+1行第1個數,跟第2n+2行第3個數、第2n+3行第5個數……連成一線,這些數的和是第4n+1個斐波那契數;將第2n行第2個數(n>1),跟第2n-1行第4個數、第2n-2行第6個數……這些數之和是第4n-2個斐波那契數。

方法一**:

def

********s()

: row =[1

]while

true

:yield row0)

# 補零以便於計算下一行資料

row =

[row[i -1]

+ row[i]

for i in

range

(len

(row))]

# 通過本行相鄰兩個資料相加獲得下一行的資料

if __name__ ==

'__main__'

: t = ********s(

)for i in

range(6

):print

(next

(t))

結果:

[1]

[1,1

][1,

2,1]

[1,3

,3,1

][1,

4,6,

4,1]

[1,5

,10,10

,5,1

]

方法二

**:

def

********s()

: row =[1

]while

true

:yield row

for i in

range(1

,len

(row)):

row[i]

= pre_line[i]

+ pre_line[i -1]

# 本行第 i 個元素為上一行的 i 元素與 i-1 元素相加1)

# 本行最後需要補元素 1

pre_line = row[:]

# 複製本行, 用於計算下一行資料

if __name__ ==

'__main__'

: t = ********s(

)for i in

range(6

):print

(next

(t))

結果:

[1]

[1,1

][1,

2,1]

[1,3

,3,1

][1,

4,6,

4,1]

[1,5

,10,10

,5,1

]

方法三

**:

def

********s

(line)

: result =[[

1]]for row in

range(1

, line)

:# for 迴圈計算楊輝三角一共多少行

current_row =

for column in

range

(row+1)

:# for 迴圈計算當前行一共多少個元素

if column ==0:

upper_former_param =

0# 計算此行的第乙個元素, 則它上一行的前乙個元素為 0

else

: upper_former_param = result[row-1]

[column-1]

# 獲得此行元素在上一行的前乙個元素

if column ==

len(result[row-1]

):upper_param =

0# 計算此行的第乙個元素, 則它上一行同樣位置的元素為 0

else

: upper_param = result[row-1]

[column]

# 獲得此行元素在上一行同樣位置的元素

param = upper_former_param + upper_param # 此行的元素為上一行同樣位置及其前乙個位置的和

# 將該元素新增到這一行

# 將這一行新增到結果中

return result

if __name__ ==

'__main__'

:print

(********s(6)

)

結果:

[[1

],[1

,1],

[1,2

,1],

[1,3

,3,1

],[1

,4,6

,4,1

],[1

,5,10

,10,5

,1]]

楊輝三角 python實現

楊輝三角python實現 generator toc 本人在學習廖雪峰老師的python教程時,遇見練習題 因此得到如下解 計算楊輝三角 def yh m n 0 while n m if n 0 n n 1 yield 1 if n 1 l 1,1 yield l n n 1 l.insert 0...

Python實現楊輝三角

楊輝三角,是二項式係數在三角形中的一種幾何排列。在歐洲,這個表叫做帕斯卡三角形。帕斯卡 1623 1662 是在1654年發現這一規律的,比楊輝要遲393年,比賈憲遲600年。楊輝三角是中國古代數學的傑出研究成果之一,它把二項式係數圖形化,把組合數內在的一些代數性質直觀地從圖形中體現出來,是一種離散...

python楊輝三角 楊輝三角I II

給定乙個非負整數 numrows,生成楊輝三角的前 numrows 行。在楊輝三角中,每個數是它左上方和右上方的數的和。示例 輸入 5 輸出 1 1,1 1,2,1 1,3,3,1 1,4,6,4,1 可以一行一行錯位加,當然這裡提供更簡便的方法。任取一行描述 1,2,1 如何得到 1,3,3,1 ...