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. 참고