Định Lý Thặng Dư Trung Hoa (CRT) - Ghép Phương Trình Modular¶
Tác giả: FPTOJ Team
Nội dung tham khảo từ: CP-Algorithms - CRT
1. Bản chất vấn đề¶
Bài toán: Giải hệ phương trình đồng dư¶
Giải hệ:
Trong đó \(m_1, m_2, \ldots, m_k\) nguyên tố cùng nhau đôi một (\(\gcd(m_i, m_j) = 1\) với \(i \neq j\)).
Định lý CRT¶
Nếu \(\gcd(m_i, m_j) = 1\) với mọi \(i \neq j\), hệ phương trình có nghiệm duy nhất modulo \(M = m_1 \cdot m_2 \cdots m_k\).
Ví dụ¶
Nghiệm: \(x = 23\) (vì \(23 \mod 3 = 2\), \(23 \mod 5 = 3\), \(23 \mod 7 = 2\)). Mọi nghiệm có dạng \(x = 23 + 105k\) với \(k \in \mathbb{Z}\).
2. Tư duy cốt lõi¶
Công thức CRT¶
Trong đó:
- \(M = m_1 \cdot m_2 \cdots m_k\)
- \(M_i = M / m_i\)
- \(M_i^{-1}\) là nghịch đảo modular của \(M_i\) modulo \(m_i\)
Trace chi tiết¶
Hệ: \(x \equiv 2 \pmod{3}\), \(x \equiv 3 \pmod{5}\), \(x \equiv 2 \pmod{7}\)
Bước 1: Tính \(M = 3 \times 5 \times 7 = 105\)
Bước 2: Tính \(M_i\):
| \(i\) | \(m_i\) | \(M_i = M / m_i\) | \(M_i \mod m_i\) | \(M_i^{-1} \pmod{m_i}\) |
|---|---|---|---|---|
| 1 | 3 | \(105/3 = 35\) | \(35 \mod 3 = 2\) | \(2^{-1} \pmod{3} = 2\) (vì \(2 \times 2 = 4 \equiv 1\)) |
| 2 | 5 | \(105/5 = 21\) | \(21 \mod 5 = 1\) | \(1^{-1} \pmod{5} = 1\) |
| 3 | 7 | \(105/7 = 15\) | \(15 \mod 7 = 1\) | \(1^{-1} \pmod{7} = 1\) |
Bước 3: Tính \(x\):
Kiểm tra: \(23 \mod 3 = 2\) ✓, \(23 \mod 5 = 3\) ✓, \(23 \mod 7 = 2\) ✓
3. Phân tích tính đúng đắn¶
Tại sao \(M_i \cdot M_i^{-1} \equiv 1 \pmod{m_i}\)?¶
\(M_i = M / m_i\) không chia hết cho \(m_i\) (vì \(\gcd(m_i, m_j) = 1\)). Do đó \(\gcd(M_i, m_i) = 1\) \(\Rightarrow\) \(M_i\) có nghịch đảo modulo \(m_i\).
Tại sao \(M_i \cdot M_i^{-1} \equiv 0 \pmod{m_j}\) với \(j \neq i\)?¶
\(M_i\) chia hết cho \(m_j\) (vì \(M_i = M / m_i\) chứa \(m_j\)). Do đó \(M_i \cdot M_i^{-1} \equiv 0 \pmod{m_j}\).
4. Đánh giá độ phức tạp¶
| Thao tác | Thời gian |
|---|---|
| CRT cho \(k\) phương trình | \(O(k \cdot \log(\max m_i))\) |
| Tính nghịch đảo modular (Euclid) | \(O(\log m)\) |