Python輕鬆學0001——楊輝三角

2020-12-16 百家號

習題:編寫函數,接收一個整數t作為參數,列印楊輝三角形的前t行。

簡介:

楊輝三角,是中國古代數學的接觸研究成果之一,他把二項式係數圖形化,把組合數內在的一些代數性質直觀地從圖形中體現出來,是一種離散型的數與形的結合。楊輝三角具有許多規律(想了解多一點的請問度娘~),但這道題我們需要知道的是以下幾個規律:

0.每行端點與結尾的數為1;

1.每個數等於它上方兩數之和;

2.第n項的數字有n項,第n行數字之和為2n-1;

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

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

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

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

性質0為規律前提,性質3和性質5是楊輝三角的基本性質。

習題分析:

#把每一行看作一個list,試寫一個 generator,不斷輸出下一行的list。

對於每一行,list 的第一個元素和最後一個元素是不變的。如果用空列表L = [] 表示的話, L[0], L[n],是 不變的,

第一步:先找規律,抽象化問題:

楊輝三角

首先可以觀察到,第一行為[1],我們直接賦給一個變量:初始化數列 p = [1]

其次我們觀察到,下面的每一行的開頭結尾都是[1],那麼我們可以推導出每一行的規律為:[1]+.........+[1]

那麼我們發現,從第三行開始中間的 [2],第四行中間的 [3,3],第五行中間的 [4,6,4] 等等以此類推才是我們需要推導的部分

第一行:[1] 設 p = [1]

第二行:[1]+[1] 設 p = [1,1]

第三行:[1]+[2]+[1] 設 p = [1,2,1]

第四行:[1]+[3]+[3]+[1]設 p = [1,3,3,1]

經過找規律,可以發現,每一個新的list中間的部分,都等於上一行list的:第0個元素+第1個元素,第1個元素+第2個元素,第2個元素+第3個元素,.......

加上頭尾也就是[1] +[p[0]+p[1]]+[p[1]+p[2]].....+[1]

比如上面第三行:p[0] = 1, p[1] = 2, p[3] = [1]

那麼第四行就是:[1] + [1+2] # p[0]+p[1]+ [2+1]# p[2]+p[3]+ [1]

後面以此類推

既然核心點是這個除去首位兩個 [1] 的中間部分:[p[0] + p[1]]+[p[1] + p[2]]+[p[2] + p[3]]........

我們很容易得到規律:[p[i] + p[i+1]]# for i in range(x)

理解性較好,代碼量較少的實現方式如下:

楊輝三角的Python程序
楊輝三角的結果

附編程(自己打字才能練編程哦):

def yanghui(t):

#列印第一行和第二行

print ([1])

line = [1,1]

print(line)

#列印從第三行開始的其他行

for i in range(2,t):

r = []

#按規律生成該行除兩端以外的數字

for i in range(0,len(line)-1):

r.append(line[i]+line[i+1])

#把兩端的數字連上

line = [1]+r+[1]

print(line)

#測試,列印楊輝三角形的前6行

yanghui(6)

相關焦點

  • 「Python」每日一練:斐波拉契數列,楊輝三角
    程序編寫要求:(1)要求使用列表保存斐波納契數列(2)使用列表元素的增加操作2、編程輸出楊輝三角每行數字左右對稱,由1開始逐漸變大,然後變小,回到1。除了都為1的兩邊之外的每個數字等於該數字對應的上一行的數字及上一行的數字前面的數字之和。
  • 探秘楊輝三角
    傳播數學文化  啟迪智慧人生探秘楊輝三角 歲月清淺,冬意漸濃,然而今日卻暖陽高照,同學們,我們趁著心情正好,這節課就一起來探秘我國古代數學的瑰寶——楊輝三角。今天就讓我們揭開它那神秘的面紗…… 「橫看成嶺側成峰,遠近高低各不同」,橫看、豎看、斜看、連續看、隔行看,從多種角度觀察楊輝三角的圖形,能發現不同的排列規律。
  • 簡單而不平凡的楊輝三角
    楊輝三角中的三角形數表,是自然界和諧統一的體現。楊輝三角是二項式係數在三角形中的一種幾何排列,其中蘊含著二項式係數的幾個相關性質,包括二項式係數的對稱性、增減性與最大值、各二項式係數的和等。楊輝三角中還遠遠不只這些規律,它本身也包含了很多奇妙的性質。
  • 數學之美:楊輝三角(帕斯卡三角)的奇特性質
    楊輝三角(也稱帕斯卡三角)相信很多人都不陌生,它是一個無限對稱的數字金字塔,從頂部的單個1開始,下面一行中的每個數字都是上面兩個數字的和。楊輝三角,是二項式係數在三角形中的一種幾何排列,在中國南宋數學家楊輝1261年所著的《詳解九章算法》一書中出現。在歐洲,帕斯卡(1623—-1662)在1654年發現這一規律,所以這個表又叫做帕斯卡三角形。帕斯卡的發現比楊輝要遲393年,比賈憲遲600年。
  • 楊輝三角
    Pascal's Triangle 楊輝三角(Easy)(JAVA)題目描述:Given a non-negative integer numRows, generate the first numRows of Pascal's triangle.
  • 奇特的楊輝三角(帕斯卡三角)有多麼奇特
    楊輝,字謙光,南宋時期杭州人。在他1261年所著的《詳解九章算法》一書中,輯錄了如上所示的三角形數表,稱之為「開方作法本源」圖,並說明此表引自11世紀中葉(約公元1050年)賈憲的《釋鎖算術》,並繪畫了「古法七乘方圖」。故此,楊輝三角又被稱為「賈憲三角」。它是二項式係數在三角形中的一種幾何排列。
  • CICC科普欄目|簡單而不平凡的楊輝三角
    楊輝三角中還遠遠不只這些規律,它本身也包含了很多奇妙的性質。楊輝三角的前提是每行數字開頭與結尾的數都為1;第n行的數字有n項,且數字之和為2n-1;在第n行中,第m個數與第n-m+1的數值相同,這便是組合數的性質之一;第n行中的第m個數可以表示為:C(n-1,m-1),也就是從n-1個元素當中選取 m-1個元素,這屬於楊輝三角的基本性質之一;每個數字與上方兩數之和相同,按照此規律便能夠得出整個楊輝三角,即第n+1行中第i個數的數值為第n行中第i-1個數與第i
  • 教學研討|1.3.2 「楊輝三角」與二項式係數
    利用二項式定理,結合「楊輝三角」數表,掌握二項式係數的對稱性、增減性與最大值; 2. 用二項式係數的性質,解決一些簡單的問題。過程與方法1. 熟知二項式係數的對稱性,單調性,最大值及所有二項式係數之和等結論;2.
  • 中國古代數學瑰寶之楊輝三角潛能挖掘及拓展應用
    帕斯卡(1623----1662)是在1654年發現這一規律的,比楊輝要遲393年,比賈憲遲600年。楊輝三角是中國古代數學的傑出研究成果之一,它把二項式係數圖形化,把組合數內在的一些代數性質直觀地從圖形中體現出來,是一種離散型的數與形的優美結合.仔細觀察楊輝三角的圖形,你能發現組成它的數有什麼排列規律嗎?
  • 楊輝三角,高中數學一定會遇到,但誰知道它的相關故事!
    +  簡介:楊輝三角,是二項式係數在三角形中的一種幾何排列。帕斯卡(1623----1662)是在1654年發現這一規律的,比楊輝要遲393年,比賈憲遲600年。楊輝三角是中國古代數學的傑出研究成果之一,它把二項式係數圖形化,把組合數內在的一些代數性質直觀地從圖形中體現出來,是一種離散型的數與形的優美結合.
  • 分離係數法 與 楊輝三角
    上圖中,去掉紅字、橫線和加號,剩下的內容就是楊輝三角。於是,除兩側的1以外,中間的每個數都是其正上方和左上方這兩個數的和。上面這個楊輝三角形是直角三角形,而我們通常所見為等腰三角形或正三角形。但其實結構是一樣的。我們在說楊輝三角形時,總是說它的一個數是它肩上兩個數的和,於是就可以寫出全部數字,其實,用這種豎式方式加上分離係數法,寫出楊輝三角形更加方便快捷!
  • 「楊輝三角」與「二項式定理」的相遇,成就了數學史上的一段美談
    ,這時可以用「組合數」的形式表示如下:細心的人會發現以上式子的推演,每一「項的係數」都呈一定的規律排列,而令人驚訝的是,這一規律與我國南宋時期就已經發現的「楊輝三角」的規律不謀而合。「楊輝三角」如下圖所示:楊輝三角有如下兩個最為重要的性質(更多其它性質均可由此推出):①「每個數字」等於「上一行的左右兩個數字之和」,根據此性質可以寫出整個「楊輝三角」。即第n+1行的第i個數等於第n行的第i-1個數和第i個數之和,這也是組合數的性質之一。即 C(n+1,i)=C(n,i)+C(n,i-1)。
  • 楊輝三角又一新發現,數學天才可以看一下
    楊輝三角函數模式楊輝三角的運算方式是:上面兩個數字相加所得的結果寫在下面,如圖所示:是不是又學到了一種運算技巧啊!
  • 從楊輝三角說起,體驗乘法公式應用魅力,挑戰趣味難題
    楊輝三角是一個由數字排列成的三角形數表,一般形式如圖所示,其中每一橫行都表示(a+b)^n(此處n=0,1,2,3,4,5,6)的展開式中的各項係數,楊輝三角最本質的特徵是:它的兩條斜邊都是由數字1組成的,其餘的數則是等於它「肩」上的兩個數之和。
  • ​LeetCode刷題實戰119: 楊輝三角 II
    今天和大家聊的問題叫做 楊輝三角 II,我們先來看題面:https://leetcode-cn.com/problems/pascals-triangle-ii/Given an integer rowIndex, return the rowIndexth row of the Pascal's triangle.
  • 非常奇妙:黃金分割率、斐波那契數列、楊輝三角與易經河洛的關係
    則可以得到如下的恆等式:(如圖)這個時候,斐波那契數列和黃金分割率就聯繫了起來,其實,我國古代的數學家,楊輝,發現了著名的楊輝三角,(如圖)那麼我們就會想,我們古代的數學家是如何得到這些智慧呢?其實,楊輝三角的排列,讓人們更容易聯繫到易經的主要內容:無極生太極,太極生兩儀,兩儀生四象,四象生八卦,以此類推下去,每次生化出來,增加一個爻位。
  • 常用算法詳解——列印楊輝三角形
  • 你可能不知道隱藏在楊輝三角形中的 10 個秘密!
    楊輝三角的前 10 行寫出來如下:楊輝三角的構建在最上面一行的中央寫下數字 1第二行,寫下兩個 1,和上一行形成三角形隨後的每一行比如下圖楊輝三角中發現的斐波那契數列前九個數:1,1,2,3,5,8,13,21,34…
  • 利用楊輝三角形來解釋二項式定理
    尤其在你邂逅美妙的楊輝三角時,就會更感受到的數學不可思議之處。但當第一次遇到它的時候,二形式定理中這些並不熟悉的數學符號可能會讓你望而生畏。看下面的整個公式,有求和 ∑ 符號,帶有階乘的組合公式,還有各種指數都在其中。
  • python入門書籍,輕鬆學python
    全民學python的熱潮已經開啟,然而,對於這種情況,還是有很多小夥伴私信我python到底該怎麼入門?沒接觸過編程能學會嗎?