天天看點

用 Python 程式設計實作楊輝三角

作者:小蜜蜂分享生活瑣事

#暑期創作大賽#

導言

楊輝三角是一個引人入勝的數學結構,其美妙的數字排列方式吸引了數學家和程式設計愛好者的注意。在這篇部落格中,我們将探讨如何使用 Python 編寫一個簡單的程式來生成楊輝三角。

認識楊輝三角:

楊輝三角,也稱為帕斯卡三角,是一個以數字排列而成的三角形圖案。每個數字是其左上方和右上方數字之和,首行為1。

實作思路和算法:

生成楊輝三角的基本思路是從第二行開始,每個數字等于它上方兩個數字之和。我們可以使用嵌套循環來實作這個過程。

編寫 Python 程式:

下面是一個簡單的 Python 程式,用于生成指定行數的楊輝三角。

def generate_pascals_triangle(rows):
    triangle = []
    for i in range(rows):
        row = [1] * (i + 1)
        if i > 1:
            for j in range(1, i):
                row[j] = triangle[i - 1][j - 1] + triangle[i - 1][j]
        triangle.append(row)
    return triangle

def print_pascals_triangle(triangle):
    for row in triangle:
        print(" ".join(map(str, row)).center(len(triangle[-1]) * 3))

rows = 5  # 指定要生成的行數
pascals_triangle = generate_pascals_triangle(rows)
print_pascals_triangle(pascals_triangle)           

代碼示例和解釋:

上面的代碼包括兩個函數,一個用于生成楊輝三角,另一個用于列印楊輝三角。generate_pascals_triangle 函數使用清單嵌套的方式來存儲每一行的數字,并使用兩層循環來計算每個數字的值。print_pascals_triangle 函數将生成的三角形列印出來,并通過字元串居中來美化輸出格式。

print(" ".join(map(str, row)).center(len(triangle[-1]) * 3)) 将目前行的數字轉換為字元串,用空格分隔,并通過 .center() 方法使其居中對齊。len(triangle[-1]) * 3 用于計算每行的長度,以便進行合适的居中。

自定義行數和輸出格式:

通過修改 rows 變量的值,你可以生成不同行數的楊輝三角。你還可以調整輸出格式,以便在終端中以更美觀的方式顯示。運作結果如下所示。

用 Python 程式設計實作楊輝三角

我們再提供一個簡單的代碼如下所示,核心原理是一樣的,隻是列印的楊輝三角為直角三角形呀。

def generate_pascal_triangle(n):
    triangle = []
    for i in range(n):
        row = [1 if j == 0 or j == i else row[j-1] + row[j] for j in range(i + 1)]
        triangle.append(row)
    return triangle

def print_pascal_triangle(triangle):
    for row in triangle:
        print(' '.join(map(str, row)))

num_rows = 6  # 要生成的行數
pascal_triangle = generate_pascal_triangle(num_rows)
print_pascal_triangle(pascal_triangle)           

運作結果如下所示。

用 Python 程式設計實作楊輝三角

應用和擴充:

楊輝三角在組合數學、機率論等領域有着廣泛的應用。有時間的話可以嘗試擴充這個程式呀,例如編寫一個函數來計算特定位置的值,或者生成更大規模的楊輝三角。

結尾:

通過這個簡單的 Python 程式,我們成功地實作了生成楊輝三角的功能。程式設計不僅可以加深對概念了解,還可以以創造性的方式探索數學之美。

用 Python 程式設計實作楊輝三角

繼續閱讀