pbj0812의 코딩 일기

[수학] python을 이용한 파스칼의 삼각형 구현 본문

Science/수학

[수학] python을 이용한 파스칼의 삼각형 구현

pbj0812 2020. 9. 23. 00:51

0. 목표

 - python을 이용한 파스칼의 삼각형 구현

1. 이론

 - 원본

2. 실습

 1) library 호출

import numpy as np

 2) 함수 제작

  (1) np.zeros 를 이용하여 정사각형 형태의 0으로 이루어진 행렬 생성

  (2) 각 행의 처음과 마지막을 1로 채움

  (3) inp가 2 보다 작은 경우는 1로만 채워져 있는 경우이기에 제외

  (4) 세번째 행부터 시작하여 해당 위치의 숫자는 바로 위 위치에 있는 수와 이전의 수를 합친 결과

def pascal_triangle(inp):
    result = np.zeros((inp, inp))
    for i in range(inp):
        for j in range(inp):
            if j == 0:
                result[i][j] = 1
            elif j == i:
                result[i][j] = 1
    if inp < 2:
        pass
    else:
        for i in range(2, inp):
            for j in range(1, i):
                result[i][j] = result[i - 1][j - 1] + result[i - 1][j]
    return result

3. 결과

 1) 1

print(pascal_triangle(1))

  - 결과

[[1.]]

 2) 3

print(pascal_triangle(3))

  - 결과

[[1. 0. 0.]
 [1. 1. 0.]
 [1. 2. 1.]]

 3) 10

print(pascal_triangle(10))

  - 결과

[[  1.   0.   0.   0.   0.   0.   0.   0.   0.   0.]
 [  1.   1.   0.   0.   0.   0.   0.   0.   0.   0.]
 [  1.   2.   1.   0.   0.   0.   0.   0.   0.   0.]
 [  1.   3.   3.   1.   0.   0.   0.   0.   0.   0.]
 [  1.   4.   6.   4.   1.   0.   0.   0.   0.   0.]
 [  1.   5.  10.  10.   5.   1.   0.   0.   0.   0.]
 [  1.   6.  15.  20.  15.   6.   1.   0.   0.   0.]
 [  1.   7.  21.  35.  35.  21.   7.   1.   0.   0.]
 [  1.   8.  28.  56.  70.  56.  28.   8.   1.   0.]
 [  1.   9.  36.  84. 126. 126.  84.  36.   9.   1.]]

4. 참고

 - 고등학교 실용 수학 교과서

Comments