HOWTO · Python

파이썬에서 파스칼의 삼각형 만들기

이 가이드는 파이썬에서 파스칼 삼각형을 만드는 방법을 보여줍니다.

이 페이지의 내용

파스칼의 삼각형은 숫자가 삼각형처럼 보이도록 배열된 일종의 숫자 패턴으로 정의됩니다. 이 수학 개념에서는 인접한 행의 합인 숫자로 구성된 삼각형 배열이 형성됩니다. 또한 외부 모서리는 항상 1입니다.

파이썬에서 파스칼의 삼각형 알고리즘

Python에서 파스칼 삼각형을 형성하기 위해 소프트웨어에 단계가 있습니다.

  • 먼저 사용자로부터 입력된 숫자를 받아 행의 수를 정의합니다.
  • 둘째, 값을 저장하는 데 사용되는 빈 목록이 정의됩니다.
  • 그런 다음 for 루프를 사용하여 0에서 n-1까지 반복하여 초기 목록에 하위 목록을 추가합니다.
  • 그 후, 1이 목록에 추가됩니다.
  • 그런 다음 for 루프를 다시 사용하여 삼각형의 인접한 행 안에 숫자 값을 넣습니다.
  • 마지막으로, 파스칼 삼각형은 주어진 형식에 따라 인쇄됩니다.

파이썬에서 파스칼의 삼각형을 위한 프로그램

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

파이썬에서 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