간단한 메모, 기록용
카탈란 수
다음과 같은 점화식으로 표현할 수 있다.
C0=1
Cn+1=(n+2)2(2n+1)Cn
또는
Cn+1=i=0∑nCiCn−i
다음과 같이 일반항으로 나타낼 수 있다.
Cn=2nCn−2nCn−1=n+11•2nCn
*카탈란 수는 다음과 같은 여러 문제에서 답으로 나온다.
- 정(n+2)각형에 대각선을 그어 삼각형으로 분할하는 방법의 수
- (0, 0)에서 (n, n)까지 격자점을 따라 (1, 0) 또는 (0, 1)만큼 이동하는 경로 중 대각선 x=y 좌상단으로 넘어가지 않는 경로의 개수
- (올바른) 괄호 나열 (뒤크 단어, Dyck word)) 시 경우의 수
팩토리얼
팩토리얼은 순열, 조합 등 수식에서 가끔 쓰이지만, 알고리즘 테스트에서 조심해서 사용해야 한다.
생각보다 빠르게 값이 커져서 오버플로우가 날 수 있기 때문.
(부호가 있는) Int32의 최댓값: 2,147,483,647
(부호가 있는) Int64의 최댓값: 9,223,372,036,854,775,807
20!: 2,432,902,008,176,640,000
21!: 51,090,942,171,709,440,000
21! 만 되어도 Int64의 최댓값 보다 커지기 때문.
그래서
Int64에서는 20!까지,
Int32에서는 12!까지 표현할 수 있다.