用 Python 製作帕斯卡三角形

Lakshay Kapoor 2023年1月30日
  1. Python 中的帕斯卡三角演算法
  2. 用 Python 編寫帕斯卡三角形的程式
  3. 在 Python 中使用二項式係數列印帕斯卡三角形
  4. 在 Python 中通過計算 11 的冪來列印帕斯卡的三角形
用 Python 製作帕斯卡三角形

帕斯卡三角形被定義為一種數字模式,其中數字排列成三角形。在這個數學概念中形成了一個三角形陣列,由相鄰行之和的數字組成。此外,外部邊緣始終為 1。

Python 中的帕斯卡三角演算法

要在 Python 中形成帕斯卡三角形,在軟體中是有步驟的。

  • 首先,從使用者處獲取輸入數字以定義行數。
  • 其次,定義一個空列表,用於儲存值。
  • 然後,使用 for 迴圈從 0n-1 迭代,將子列表附加到初始列表。
  • 之後,1 被附加到列表中。
  • 然後,再次使用 for 迴圈將數字的值放入三角形的相鄰行內。
  • 最後,根據給定的格式列印帕斯卡三角形。

用 Python 編寫帕斯卡三角形的程式

input_num = int(input("Enter the number of rows: "))
list = []  # an empty list
for n in range(input_num):
    list.append([])
    list[n].append(1)
    for m in range(1, n):
        list[n].append(list[n - 1][m - 1] + list[n - 1][m])
    if input_num != 0:
        list[n].append(1)
for n in range(input_num):
    print(" " * (input_num - n), end=" ", sep=" ")
    for m in range(0, n + 1):
        print("{0:5}".format(list[n][m]), end=" ", sep=" ")
    print()

輸出:

Enter the number: 5
          1 
         1     1 
        1     2     1 
       1     3     3     1 
      1     4     6     4     1 

在 Python 中使用二項式係數列印帕斯卡三角形

在這種方法中,三角形中的每一行只包含 1,並且一行中第 n 個數等於二項式係數。看下面的示例程式。

num = int(input("Enter the number of rows:"))

for n in range(1, num + 1):
    for m in range(0, num - n + 1):
        print(" ", end="")

    # first element is always 1
    B = 1
    for m in range(1, n + 1):

        # first value in a line is always 1
        print(" ", B, sep="", end="")

        # using Binomial Coefficient
        BC = B * (n - m) // m
    print()

輸出:

Enter the number of rows:5
      1
     1 1
    1 1 1
   1 1 1 1
  1 1 1 1 1

在此方法中,用於二項式係數的公式為:

BC = B(line(m), n-1) * (line(m) - n + 1) / n

在 Python 中通過計算 11 的冪來列印帕斯卡的三角形

這種方法完全基於數字 11 的冪,因為數字 11 的冪的遞增值形成了帕斯卡三角形圖案。

從數學上講,事情是這樣的。

11 * 0 = 1
11 * 1 = 11
11 * 2 = 121
11 * 3 = 1331
11 * 4 = 14641

現在在 Python 中應用此技術,請參閱下面的程式碼塊。

num = int(input("Enter the number of rows:"))

for n in range(num):
    print(" " * (num - n), end="")

    print(" ".join(map(str, str(11 ** n))))

輸出:

Enter the number of rows:5
     1
    1 1
   1 2 1
  1 3 3 1
 1 4 6 4 1
作者: Lakshay Kapoor
Lakshay Kapoor avatar Lakshay Kapoor avatar

Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.

LinkedIn

相關文章 - Python Array