Python寫楊輝三角例題

楊輝三角是一道非常經典的題目。我們先來看楊輝三角的一些概述,以下來自百度百科
前提:每行端點與結尾的數爲1.
(與上圖中的n不同,這裏第一行定義爲n=1)

  1. 每個數等於它上方兩數之和。
  2. 每行數字左右對稱,由1開始逐漸變大。
  3. 第n行的數字有n項。
  4. 前n行共[(1+n)n]/2 個數。
  5. 第n行的m個數可表示爲 C(n-1,m-1),即爲從n-1個不同元素中取m-1個元素的組合數。
  6. 第n行的第m個數和第n-m+1個數相等 ,爲組合數性質之一。
  7. 每個數字等於上一行的左右兩個數字之和。可用此性質寫出整個楊輝三角。即第n+1行的第i個數等於第n行的第i-1個數和第i個數之和,這也是組合數的性質之一。即 C(n+1,i)=C(n,i)+C(n,i-1)。
    通過這些性質我們可以知道一些規律,當然圖片會更直觀。
    在這裏插入圖片描述
    直白一點就是一個數字是等於他上一行的左右之和,頭尾都是數字1.
    接下來看代碼:
    這裏自定義了一個函數triangles(N),輸入數字N將會形成一個n行的楊輝三角
    line.append(1)給Pyhton的列表尾部追加元素即數字1
def triangles(N):
    line = [1]
    for _ in range(N):
        yield line
        for i in range(1, len(line)):
            line[i] = pre[i] + pre[i - 1]
        line.append(1)
        pre = line[:]
N = int(input("請輸入一個整數:"))
for i in triangles(N):
    print(i)

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章