일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- study book
- ARM
- MDP
- Image Processing
- Got
- Stream
- ML
- fastapi를 사용한 파이썬 웹 개발
- rao
- Flutter
- 영상처리
- BOF
- system hacking
- 백준
- Widget
- Computer Architecture
- BFS
- pytorch
- Algorithm
- Dreamhack
- DART
- BAEKJOON
- C++
- PCA
- 파이토치 트랜스포머를 활용한 자연어 처리와 컴퓨터비전 심층학습
- Kaggle
- FastAPI
- llm을 활용 단어장 앱 개발일지
- MATLAB
- bloc
- Today
- Total
Bull
[Algorithm] 뤼카의 정리(Lucas' Theorem) 본문
설명
뤼카의 정리(Lucas' Theorem)는 조합론에서 사용되는 중요한 정리로, 특히 모듈로 $p$ ($p$가 소수일 때)의 이항계수를 계산할 때 유용하다.
이 정리는 프랑스의 수학자 에두아르 뤼카(Édouard Lucas)에 의해 발견되었다.
공식
뤼카의 정리의 핵심은 이항계수 $\binom{n}{k}$ (n과 k는 양의 정수, $\binom{n}{k}$는 n 위에 k를 쓴 이항계수를 의미)가 소수 $p$에 대하여 모듈로 $p$로 나눈 나머지를 구할 때,
$n$과 $k$를 $p$진법(베이스 p)으로 확장한 후 각 자릿수를 별도로 이항계수 계산에 적용하여 최종 결과를 모듈로 $p$로 얻을 수 있다.
이를 수학적으로 표현하면, $n$과 $k$를 $p$진법으로 표현했을 때, $(n = n_0 + n_1p + n_2p^2 + \cdots)$ 그리고 $(k = k_0 + k_1p + k_2p^2 + \cdots)$ (여기서 $n_i$와 $k_i$는 $p$진법에서의 자릿수)라고 할 때,
$$ \binom{n}{k} \equiv \binom{n_0}{k_0} \cdot \binom{n_1}{k_1} \cdot \binom{n_2}{k_2} \cdot \cdots \ (\text{mod } p) $$
이 정리는 큰 수의 이항계수를 소수 모듈로 계산할 때, 직접 계산하는 것보다 훨씬 적은 계산으로 결과를 도출할 수 있게 해준다.
예시
$n=10$, $k=3$이고 $p=7$일 때,
뤼카의 정리에 의해 구해지는 값은 다음과 같다.
10의 7진수 : [1,3]
3의 7진수 : [0,3]
$$\binom{10}{3} \text{mod } 7 = \binom{3}{3} \cdot \binom{1}{0} = 1$$
'Algorithm > Theory' 카테고리의 다른 글
[Algorithm::Sort] Heap Sort 시험 요약 (0) | 2024.10.21 |
---|---|
[Algorithm::Sort] Merge Sort 시험 요약 (1) | 2024.10.21 |
[Algorithm::Sort] Insertion Sort 시험 요약 (0) | 2024.10.21 |
[Algorithm::Bitmask] 가장 오른쪽 1을 1개씩 없애는 법(1111,1110,1100,...) (0) | 2024.08.21 |
[Algorithm] Graph Theory (0) | 2024.03.16 |