Hàm Mobius & Hàm Nhân Tính¶
Tác giả: FPTOJ Team
Nội dung tham khảo từ: CP-Algorithms - Möbius Function, Multiplicative Functions
Bản chất vấn đề¶
Hàm Mobius¶
Cho số nguyên dương \(n\). Hàm Mobius \(\mu(n)\) được dùng trong nguyên lý bao hàm - loại trừ trên ước số, giúp đếm số phần tử thỏa mãn điều kiện liên quan đến chia hết.
Ứng dụng chính: \(\sum_{d|n} \mu(d) = [n=1]\) — công thức nền tảng để loại bỏ đếm trùng.
Hàm nhân tính¶
Hàm \(f\) là nhân tính nếu \(\gcd(a,b)=1 \Rightarrow f(ab)=f(a) \cdot f(b)\). Hiểu tính chất nhân tính giúp tính nhanh nhiều hàm số học (Euler \(\varphi\), Mobius \(\mu\), số ước \(\sigma_0\), tổng ước \(\sigma_1\)).
1. Hàm Mobius¶
Định nghĩa¶
Hàm Mobius \(\mu(n)\):
Bảng giá trị¶
| \(n\) | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| \(\mu(n)\) | 1 | -1 | -1 | 0 | -1 | 1 | -1 | 0 | 0 | 1 | 0 |
\(\mu(4) = 0\) vì \(4 = 2^2\) (chia hết cho bình phương).
\(\mu(6) = 1\) vì \(6 = 2 \cdot 3\) (\(k=2\) cặp, \((-1)^2 = 1\)).
Biểu đồ giá trị của hàm Möbius \(\mu(n)\):

Ứng dụng: Nghịch đảo Dirichlet¶
Hệ quả (nguyên lý bao hàm - loại trừ):
Tính \(\mu(n)\) bằng sàng¶
2. Hàm Nhân Tính (Multiplicative Function)¶
Định nghĩa¶
Hàm \(f\) là nhân tính nếu \(\gcd(a, b) = 1 \Rightarrow f(ab) = f(a) \cdot f(b)\).
Hàm \(f\) là hoàn toàn nhân tính nếu \(f(ab) = f(a) \cdot f(b)\) với mọi \(a, b\).
Các hàm nhân tính quan trọng¶
| Hàm | Định nghĩa | Nhân tính? |
|---|---|---|
| \(\varphi(n)\) (Euler) | Số nguyên tố cùng nhau | Có |
| \(\mu(n)\) (Mobius) | Hàm Mobius | Có |
| \(\sigma_0(n)\) | Số ước | Có |
| \(\sigma_1(n)\) | Tổng ước | Có |
| \(\text{id}(n) = n\) | Hàm đồng nhất | Hoàn toàn |
| \(\text{id}_k(n) = n^k\) | Lũy thừa | Hoàn toàn |
| \(\mathbf{1}(n) = 1\) | Hàm hằng | Hoàn toàn |
Tính chất: Convolution Dirichlet¶
Nếu \(f, g\) là nhân tính thì \(f * g\) cũng là nhân tính, với:
Ví dụ: \(\varphi * \mathbf{1} = \text{id}\), tức \(\sum_{d|n} \varphi(d) = n\).
3. Phân tích tính đúng đắn¶
Tại sao \(\sum_{d|n} \mu(d) = [n=1]\)?¶
Trường hợp \(n = 1\): \(\sum_{d|1} \mu(d) = \mu(1) = 1\). Đúng.
Trường hợp \(n > 1\): Viết \(n = p_1^{a_1} \cdot p_2^{a_2} \cdots p_k^{a_k}\) với \(k \ge 1\).
Các ước \(d\) của \(n\) mà \(\mu(d) \neq 0\) là các tích phân biệt của \(p_1, p_2, \ldots, p_k\) (mỗi ước chọn hoặc không chọn mỗi \(p_i\)).
Đây chính là khai triển nhị thức Newton của \((1-1)^k = 0\) với \(k \ge 1\).
Tại sao Mobius là hàm nhân tính?¶
Nếu \(\gcd(a, b) = 1\), thì \(ab\) có bình phương nguyên tố \(\iff\) \(a\) hoặc \(b\) có bình phương nguyên tố. Do đó \(\mu(ab) = \mu(a) \cdot \mu(b)\).
4. Đánh giá độ phức tạp¶
| Thao tác | Thời gian |
|---|---|
| Sàng tính \(\mu\) hoặc \(\varphi\) | \(O(N \log \log N)\) |
| Linear sieve tính \(\mu\), \(\varphi\) | \(O(N)\) |