가헌 삼각형(파스칼의 삼각형)과 이항정리
by
gg582 · 2026-08-04 05:00:26 · 27 views
위 그림은 중세 수학자 양휘가 가헌 삼각형(파스칼의 삼각형)으로 작성한 이항정리표이다.
1행은 x이다.
2행은 x+1이다.
3행은 (x+1)^3이다.
4행은 (x+1)^4이다.
5행은 (x+1)^5이다.
...
N행은 (x+1)^N이다.
N=8일 때를 실제로 옮겨 쓰면 x^8+8x^7+28x^6+56x^5+70x^4+56x^3+28x^2+8x+1이다. 이는 실제 계산과 일치한다.
기본 조건을 다시 보며 (x+M)^N 꼴로 일반화한다. N=3은 충분히 작다.
(x+M)^N에서 M은 미지수 그대로 두고, N=3으로 한다. (x+M)(x+M)(x+M)=(x^2+2Mx+M^2)(x+M)으로 하자. 이 때 Y=(x^2+2Mx+M^2)로 한다.
Y(x+M)=xY+MY=(x^3+2Mx^2+M^2x)+(Mx^2+2M^2x+M^3)=x^3+3Mx^2+3M^2x+M^3이다.
이와 같이 N이 주어질 때 x^N과 M^N을 제외하고는 규칙적으로 M과 x가 섞여 쓰이니 이치가 신기하다.
이대로 (x+M)^N 꼴의 가헌 삼각형(파스칼의 삼각형)을 아스키 아트로 출력하게 만들어 보자.
def generate_jiaxian_triangle(max_n):
for n in range(max_n + 1):
# n번째 행의 이항계수 계산 (C(n, k) * M^k 형태의 계수)
row_coeffs = []
c = 1
for k in range(n + 1):
row_coeffs.append(c)
c = c * (n - k) // (k + 1)
# 계수 표현 생성 (M의 거듭제곱 표시 포함)
row_terms = []
for k, coeff in enumerate(row_coeffs):
if k == 0:
term = "1"
elif k == 1:
term = f"{coeff}M" if coeff != 1 else "M"
else:
term = f"{coeff}M^{k}" if coeff != 1 else f"M^{k}"
row_terms.append(term)
# 삼각 형태로 출력하기 위한 정렬
line = " ".join(row_terms)
print(f"N={n:2d} | " + line.center(max_n * 12))
# 실행 (예: N=8까지 출력)
if __name__ == "__main__":
N_MAX = 8
generate_jiaxian_triangle(N_MAX)
N= 0 | 1
N= 1 | 1 M
N= 2 | 1 2M M^2
N= 3 | 1 3M 3M^2 M^3
N= 4 | 1 4M 6M^2 4M^3 M^4
N= 5 | 1 5M 10M^2 10M^3 5M^4 M^5
N= 6 | 1 6M 15M^2 20M^3 15M^4 6M^5 M^6
N= 7 | 1 7M 21M^2 35M^3 35M^4 21M^5 7M^6 M^7
N= 8 | 1 8M 28M^2 56M^3 70M^4 56M^5 28M^6 8M^7 M^8
이제 N_MAX=8 부분을 고쳐 보자. N_MAX=int(input()) 꼴로 간단하게 한다.
이후 12를 입력한다.
N= 0 | 1
N= 1 | 1 M
N= 2 | 1 2M M^2
N= 3 | 1 3M 3M^2 M^3
N= 4 | 1 4M 6M^2 4M^3 M^4
N= 5 | 1 5M 10M^2 10M^3 5M^4 M^5
N= 6 | 1 6M 15M^2 20M^3 15M^4 6M^5 M^6
N= 7 | 1 7M 21M^2 35M^3 35M^4 21M^5 7M^6 M^7
N= 8 | 1 8M 28M^2 56M^3 70M^4 56M^5 28M^6 8M^7 M^8
N= 9 | 1 9M 36M^2 84M^3 126M^4 126M^5 84M^6 36M^7 9M^8 M^9
N=10 | 1 10M 45M^2 120M^3 210M^4 252M^5 210M^6 120M^7 45M^8 10M^9 M^10
N=11 | 1 11M 55M^2 165M^3 330M^4 462M^5 462M^6 330M^7 165M^8 55M^9 11M^10 M^11
N=12 | 1 12M 66M^2 220M^3 495M^4 792M^5 924M^6 792M^7 495M^8 220M^9 66M^10 12M^11 M^12
이것은 (x+1)^N 꼴이다. 기본 꼴의 확장으로 양휘산법에서 소개한다.
가헌과 양휘가 일찍이 이항정리의 모든 이치를 파악하여 체계화해 둔 덕분에, 오늘날 우리도 이를 바탕으로 임의의 (x+M)^N에 대한 이항 정리 표를 쉽게 도출할 수 있다. 이처럼 완성된 계수 테이블을 미리 정의해 두고 조회하여 연산하면, 고차식 전개와 계산을 훨씬 효율적으로 처리할 수 있다.