개념
이항계수 는 서로 다른 개 중 개를 고르는 경우의 수이며, 을 전개할 때 의 계수이기도 합니다.
원소를 고르는 경우와 고르지 않는 경우
특정 원소 하나를 정합니다. 그 원소를 고르면 나머지 개에서 개를, 고르지 않으면 나머지에서 개를 골라야 합니다.
아무것도 고르지 않거나 전부 고르는 경우는 각각 하나이므로 입니다.
중 두 개를 고를 때 를 기준으로 나눠 보겠습니다. 를 고르면 나머지 세 개 중 하나를 골라 의 가지입니다. 를 고르지 않으면 나머지 세 개 중 두 개를 골라 의 가지입니다. 모든 선택이 두 경우 중 하나에만 속하므로 합계는 입니다.
파스칼 삼각형
각 행의 양 끝을 로 두고 바로 위의 두 값을 더합니다. 처음 다섯 행은 , , , , 입니다.
팩토리얼 공식은 곱과 나눗셈으로 한 이항계수를 구합니다. 파스칼 삼각형은 작은 이항계수를 저장하고 덧셈만으로 다음 값을 구하므로 여러 에 대해 반복해서 묻는 문제에 유용합니다. 어떤 수로 나눈 나머지가 필요할 때도 각 덧셈 후 나머지를 취할 수 있습니다.
복잡도
이 방법은 나눗셈 없이 덧셈으로 계산하므로 모듈러 연산과 함께 사용할 수 있습니다. 파스칼의 삼각형을 번째 행까지 구합니다.
| 연산 | 시간복잡도 | 공간복잡도 |
|---|---|---|
| 이항 계수 DP | DP 표 |
예제
문제
개 중 개를 고르는 경우의 수를 구하여라.
입력
첫째 줄에 전체 개수 과 고를 개수 이 공백을 사이에 두고 주어진다. 이다.
출력
이항계수를 출력한다.