Python でパスカルの三角形を作成する

Lakshay Kapoor 2023年1月30日
  1. Python でのパスカルの三角形アルゴリズム
  2. Python でのパスカルの三角形のプログラム
  3. Python で二項係数を使用してパスカルの三角形を出力する
  4. Python で 11 のべき乗を計算してパスカルの三角形を出力する
Python でパスカルの三角形を作成する

パスカルの三角形は、数字が三角形のように配置されるタイプの数字パターンとして定義されます。この数学の概念では、隣接する行の合計である数値によって形成される三角配列が形成されます。さらに、外部エッジは常に 1 です。

Python でのパスカルの三角形アルゴリズム

Python でパスカルの三角形を形成するために、ソフトウェアには段階的なものがあります。

  • 最初に、入力番号がユーザーから取得され、行数が定義されます。
  • 次に、値を格納するために使用される空のリストが定義されます。
  • 次に、for ループを使用して 0 から n-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