Pascal's triangle (파스칼의 삼각형)
본문 바로가기
Algorithm (C++ based)/Math

Pascal's triangle (파스칼의 삼각형)

by 조훈이 2021. 1. 28.

// Pascal's triangle


   What is Pascal's triangle?   

 

  좌측의 수식과 같은 이항계수의 값을 구할 때 사용할 수 있다. 하지만 아래 설명을 보면 알 수 있듯 점화식을 활용한 Dynamic Programming의 알고리즘을 사용하는 형태로, n의 값이 상당히 커진다면 사용하기 곤란한 알고리즘이다. 

  n의 값이 상당히 커졌을 경우에는 Lucas Theorem (뤼카의 정리) 를 사용하면 된다.


   Explanation   

파스칼의 삼각형
이항계수 성질

  위 파스칼의 삼각형을 나타낸 피라미드 모양의 그림에 연두색 값들은, 위에 있는 두 블록의 값의 합과 같다. 또한 양 변들은 nC0, nCn 이 되므로 값이 1이 된다. 이는 이항계수의 성질로서 증명이 된다.

 

  Dynamic Programming으로 C[n][k] 와 같은 벡터에 값을 미리 할당해두면 편할 것이다.

728x90

'Algorithm (C++ based) > Math' 카테고리의 다른 글

CCW (Counter Clock Wise)  (0) 2021.06.27
Monge array (Monge matrix)  (0) 2021.02.03
power 함수 구현 (분할 정복 이용)  (0) 2021.01.29
Lucas's theorem (뤼카의 정리)  (0) 2021.01.27
Fibonacci sequence (피보나치 수열)  (0) 2020.11.06

댓글