楊輝三角,是二項式係數在三角形中的一種幾何排列,中國南宋數學家楊輝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
(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
(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__'
(********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 ...