Python實現楊輝三角

2022-02-26 02:06:51 字數 1074 閱讀 1970

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

以下是楊輝三角的大概樣子,n=5

昨天一直在看傳智播客2023年的前端教程,昨天和今天也抽空研究了以下如何用python實現楊輝三角。

楊輝三角有以下幾點特性:

本來無從下手,但是研究了一種python解法終於實現:

def yanghui():

a = [1]

while true:

yield a

a = [sum(i) for i in zip([0] + a, a + [0])]

n = 0

for j in yanghui():

print(j)

n += 1

if n == 2:

break

下面,我來解釋以下這段**是什麼意思:

首先,定義乙個函式,然後定義乙個列表,a = [1]

然後就是while迴圈,yield生成器就不多說了。下面的其實也不用多說,主要是這句話:

a = [sum(i) for i in zip([0] + a, a + [0])]
a = [1]

a = [0,1]+[1,0] = [1,1]

a = [0,1,1]+[1,1,0]==[1,2,1]

a = [0,1,2,1]+[1,2,1,0]=[1,3,3,1]

a = [0,1,3,3,1]+[1,3,3,1,0]=[1,4,6,4,1]

這種解法非常巧妙,他利用zip打包兩個陣列,再利用2個0,錯位相加,從而實現了楊輝三角,解題者非常聰明,而我卻很笨,看了很久才明白。

楊輝三角 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楊輝三角 楊輝三角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 ...

用python實現楊輝三角和倒楊輝三角

因為我只有c的基礎所以很多東西是生辦過來的,方法可能有些笨,請諒解。不說了直接附上 import numpy as np 整形輸入 n int input 根據輸入大小來建立矩陣 x,y n,2 n 1 生成全零的numpy矩陣 a np.zeros x,y dtype int 根據規律填數 for...