βΉοΈ Skipped - page is already crawled
| Filter | Status | Condition | Details |
|---|---|---|---|
| HTTP status | PASS | download_http_code = 200 | HTTP 200 |
| Age cutoff | PASS | download_stamp > now() - 6 MONTH | 1.9 months ago |
| History drop | PASS | isNull(history_drop_reason) | No drop reason |
| Spam/ban | PASS | fh_dont_index != 1 AND ml_spam_score = 0 | ml_spam_score=0 |
| Canonical | FAIL | meta_canonical IS NULL OR = '' OR = src_unparsed | io,github!youngyojun,/ s443 |
| Property | Value |
|---|---|
| URL | https://youngyojun.github.io/secmem/2022/02/18/sigma-sum-stern-brocot/ |
| Last Crawled | 2026-02-10 22:35:56 (1 month ago) |
| First Indexed | 2022-02-19 00:02:57 (4 years ago) |
| HTTP Status Code | 200 |
| Meta Title | Stern-Brocot Treeλ₯Ό νμ©ν μλ‘ μ ν¨μμ ν© κ³μ° | Gyojun Youn's PS Blog |
| Meta Description | κ°μ |
| Meta Canonical | io,github!youngyojun,/ s443 |
| Boilerpipe Text | κ°μ
μ μλ‘ μμ μ£Όλ‘ λ€λ£¨λ μ€μν
μλ‘ μ ν¨μ
λ‘λ μ½μ ν¨μ $\sigma_k (n)$, μ€μΌλ¬ νΌ ν¨μ $\phi (n)$, λ«ΌλΉμ°μ€ ν¨μ $\mu (n)$ λ±μ΄ μλ€. μ΄λ¬ν ν¨μμ νλ¬Έμ μ€μλλ μ΄λ£¨ λ§ν μ μμΌλ©°, μ»΄ν¨ν°κ³Όνμ PS λΆμΌμλ μ’
μ’
λ±μ₯ν μ λλ‘ λ€μνκ² νμ©λλ€.
λ³Έ κΈμ μλ‘ μ ν¨μμ λνμΈ μ½μ ν¨μ $\sigma (n)$μ κ΅¬κ° ν©μ ν¨μ¨μ μΌλ‘ κ³μ°νλ μκ³ λ¦¬μ¦μ μμ νλ€. ν¨μμ ν©μ κΈ°νμ μΌλ‘ ν΄μν ν, μ΄λ₯Ό Stern-Brocot Tree μλ£κ΅¬μ‘°λ‘ κ³μ°νλ€. μ΄ν, μ΄ μκ³ λ¦¬μ¦μ μκ° λ³΅μ‘λκ° $\tilde{O} \left( N^{1/3} \right)$λ‘ μμ£Ό ν¨μ¨μ μμ 보μΈλ€.
λ¬Έμ μ κΈ°
μ½μ ν¨μμ ν© λ¬Έμ
μμ μ μ $n$μ λνμ¬, $n$μ λͺ¨λ μμ μ½μμ $k$μ κ³±μ ν©μ μκ°νμ. μ΄κ²μ΄
μ½μ ν¨μ
$\sigma_k (n)$μ μ μμ΄λ€.
\[\sigma_k (n) := \sum_{ d | n } d^k\]
μ΄ κΈμμλ $k = 1$μΈ μκ·Έλ§ ν¨μ $\sigma (n) := \sigma_1 (n)$μ λνμ¬ μ£Όλ‘ λ€λ£¬λ€. μ΄ κ°μ $n$μ μ½μμ ν©μ λνλΈλ€.
μ΄μ , μ μ $N$μ΄ μ£Όμ΄μ‘μ λ, 1λΆν° $N$κΉμ§ μκ·Έλ§ ν¨μ«κ°μ ν© $ \displaystyle \sum_{k=1}^{N} \sigma(k) $μ ꡬνλ λ¬Έμ λ₯Ό μκ°νμ.
μ μλ‘ μ μ κ·Ό
$\sigma(1) + \cdots + \sigma(N)$μ κ°μ λ€μ 쑰건μ λ§μ‘±νλ μμ μ μ μ $(n, d)$μ κ°μμ κ°λ€.
$d$λ $n$μ μ½μ
$1 \le d \le n \le N$
μ΄λ μκ·Έλ§ ν¨μμ μ μλ₯Ό μκ°ν λ, $\sigma(k)$μ κ°μ $n = k$μΈ $(n, d)$μ κ°μμ κ°μΌλ―λ‘ μλͺ
νλ€.
μ΄μ , $d$μ κ°μ κ³ μ ν ν, μμ 쑰건μ λ§μ‘±νλ $n$μ κ°μλ₯Ό μΈμ. $n$μ $N$ μ΄νμΈ $d$μ λ°°μλΌμΌ νλ―λ‘, μ΄ $ \displaystyle \left\lfloor \frac{ N }{ d } \right\rfloor $κ°λ§νΌ μ‘΄μ¬νλ€.
\[\sum _{k=1}^{N} \sigma(k) = \sum _{d=1}^{N} \left\lfloor \frac{ N }{ d } \right\rfloor\]
μ΄λ λ€λ₯΄κ² ν΄μνλ©΄, $y = \frac{N}{x}$ κ·Έλν μλμ μλ μμ μ μ μ $(x, y)$μ κ°μλ₯Ό μΈλ κ²κ³Ό κ°λ€. 곑μ $xy = N$μ μ§μ $x = y$μ λνμ¬ λμΉμ΄λ©°, μ΄ λμ κ΅μ μ $\left( \sqrt{N}, \sqrt{N} \right)$μ΄λ―λ‘, μ΅μ’
μ μΌλ‘ μλμ μμ μ»μ μ μλ€.
\[\sum _{d=1}^{N} \left\lfloor \frac{ N }{ d } \right\rfloor = 2 \sum _{x=1}^{ \left\lfloor \sqrt{N} \right\rfloor } \left\lfloor \frac{ N }{ x } \right\rfloor - { \left\lfloor \sqrt{N} \right\rfloor }^2\]
μ°λ¦¬λ μκ·Έλ§ ν¨μ $\sigma(n)$μ κ°μ μ΄λ»κ² κ³μ°νλμ§ μμ§ μμλ, μκ·Έλ§ ν¨μμ ν©μ $O \left( \sqrt{N} \right)$λ§μ μ½κ² κ³μ°ν μ μκ² λμλ€.
κ·Έλ¬λ $N$μ΄ $10^{18}$-scaleλ‘ μμ£Ό ν° μλΌλ©΄, μ°λ¦¬λ μ΄λ³΄λ€λ λμ± ν¨μ¨μ μΈ λ°©λ²μ μ°ΎμμΌ νλ€.
Stern-Brocot Tree
ν¨μ¨μ μΈ μκ³ λ¦¬μ¦μ ꡬμνκΈ° μ μ, ν리 μμ΄κ³Ό Stern-Brocot Tree μλ£κ΅¬μ‘°μ λνμ¬ λ¨Όμ μμ보μ.
Farey Sequence
Stern-Brocot Treeμ λνμ¬ λ
ΌνκΈ° μ μ, λ¨Όμ
ν리 μμ΄
μ μ μλ₯Ό μκ°νλ€. $n$λ²μ§Έ ν리 μμ΄ $F_n$λ λ€μμ λ§μ‘±νλ λͺ¨λ κΈ°μ½λΆμ $ \displaystyle \frac{a}{b} $λ₯Ό μ€λ¦μ°¨μμΌλ‘ λμ΄ν μμ΄μ΄λ€.
$0 \le b \le a \le n$
$\gcd (a, b) = 1$
μλ₯Ό λ€μ΄, λͺλͺμ $n$μ λνμ¬ ν리 μμ΄ $F_n$μ λμ΄νλ©΄ μλμ κ°λ€.
\[F _1 = \left\{ \frac{0}{1}, \frac{1}{1} \right\}\]
\[F _2 = \left\{ \frac{0}{1}, \frac{1}{2}, \frac{1}{1} \right\}\]
\[F _5 = \left\{ \frac{0}{1}, \frac{1}{5}, \frac{1}{4}, \frac{1}{3}, \frac{2}{5}, \frac{1}{2}, \frac{3}{5}, \frac{2}{3}, \frac{3}{4}, \frac{4}{5}, \frac{1}{1} \right\}\]
μ¬κΈ°μ, ν리 μμ΄ $F_n$μμ μΈμ ν λ μ 리μλ₯Ό βμ°¨μ $n$μμ ν리 μ΄μνλ€βλΌκ³ νλ€. ν리 μ΄μμ κ΄ν μ€μν μ 리λ₯Ό νλ μκ°νλ€.
μ°¨μμ μκ΄μμ΄, ν리 μ΄μν λ μ 리μ $ \displaystyle \frac{a}{b} > \frac{c}{d} $λ $ad - bc = 1$μ λ§μ‘±νλ€.
μ΄ μ 리λ μλμ μμ ν Stern-Brocot Treeμ κ΄ν μ 리μ κΈ°λ°μ΄ λλ€.
Stern-Brocot Tree
ν리 μμ΄ $F_n$μ νμ₯νμ¬, κ° μ 리μμ μμκΉμ§ λ±μ₯νλ μμ΄μ μκ°νμ. νΈμμ, $ \displaystyle \frac{1}{0} = + \infty $λ‘ μκ°νλ©΄, μ΄ μμ΄μ $ \displaystyle \frac{0}{1} = 0 $ μ΄μ $ \displaystyle \frac{1}{0} = + \infty $ μ΄νμΈ κΈ°μ½λΆμλ₯Ό μ λμ΄ν κ²μ΄λ€.
μ€μ λ‘, $0$ μ΄μμ λͺ¨λ μ 리μλ μΆ©λΆν ν° $n$μ λνμ¬ νμ₯λ ν리 μμ΄ $Fβ _n$μ μ ννκ² ν λ² λ±μ₯ν¨μ μ¦λͺ
ν μ μλ€. μ΄μ , κΉμ΄ $n$μ ν΄λΉνλ μΈ΅μ νμ₯λ ν리 μμ΄ $Fβ _n$μ μ μ΄, μλ κ·Έλ¦Όκ³Ό κ°μ μ΄μ§ νΈλ¦¬λ₯Ό μκ°νμ.
κ·Έλ¦Ό 1: SternβBrocot Tree
νμ₯λ ν리 μμ΄ $F' _1$λΆν° $F' _4$κΉμ§ νμ©νμ¬ κΉμ΄ 4μ Stern-Brocot Treeλ₯Ό λ§λ€ μ μλ€.
μ΄ νΈλ¦¬λ (1)
μμ μ΄μ§ κ²μ νΈλ¦¬
μ΄λ©°, (2)
λͺ¨λ μμ μ 리μκ° μ ννκ² ν λ²μ© λ±μ₯
νλ€λ κ°λ ₯ν μ±μ§μ κ°μ§λ€. λν, νΈλ¦¬ κ·Έ μμ²΄λ‘ μ 리μμ μμ°μ κ°μ μΌλμΌ λμμ μ 보μ¬μ€λ€.
μ΄λ¬ν μμ μ΄μ§ κ²μ νΈλ¦¬λ₯Ό
Stern-Brocot Tree
λΌκ³ λΆλ₯Έλ€.
μ 리μ μ΄λΆνμ
μκ³ λ¦¬μ¦ λΆμΌμμ Stern-Brocot Treeλ μ 리μλ₯Ό λμμΌλ‘ μ΄λΆνμμ ν μ μκ² λμλ€λ μ μμ κ·Έ μλ―Έκ° κΉλ€.
λ μ 리μ $ \displaystyle \frac{a}{b} < \frac{c}{d} $μ λνμ¬, $\displaystyle \frac{a}{b}$ μ΄κ³Ό $\displaystyle \frac{c}{d}$ λ―Έλ§μ λͺ¨λ μ 리μλ₯Ό λ΄κ³ μλ Stern-Brocot Subtreeμ λ£¨νΈ μ μ μ $\displaystyle \frac{a+c}{b+d}$μ΄λ€.
μ΄λ₯Ό κ·Έλλ‘ νμ©νλ©΄, λ€μκ³Ό κ°μ μ΄λΆνμ μκ³ λ¦¬μ¦μ μκ°ν μ μλ€.
$ \displaystyle s := \frac{a}{b} = \frac{0}{1} $, $ \displaystyle e := \frac{c}{d} = \frac{1}{0} $μΌλ‘ μ€μ νλ€. μ΄μ , κ° μ€ν
λ§λ€ $s$ μ΄κ³Ό $e$ λ―Έλ§μΈ μ 리μμ λνμ¬ μ΄λΆνμμ μννλ€.
μ€κ°κ° $ \displaystyle m := \frac{ a+c }{ b+d } $μ μ‘μ.
λ§μ½, $m$μ΄ μ°Ύκ³ μ νλ μ 리μλΌλ©΄, νμμ λ©μΆλ€.
μλλΌλ©΄, μ°Ύκ³ μ νλ μ 리μμ $m$μ λν λμλΉκ΅λ₯Ό μννλ€.
$(s, e)$λ₯Ό $(s, m)$ νΉμ $(m, e)$λ‘ λμ
ν ν, μμ κ³Όμ μ λ°λ³΅νλ€.
μ΄λ¬ν μ΄λΆνμ κ³Όμ μ ν΅νμ¬ μ΅μ’
μ μΌλ‘ κΈ°μ½λΆμ $ \displaystyle \frac{x}{y} $λ₯Ό μ»μλ€λ©΄, νμ νμλ Stern-Brocot Treeμμ μ μ $ \displaystyle \frac{x}{y} $μ κΉμ΄μ κ°μΌλ―λ‘ $O(x+y)$μ΄λ€.
κ³Όμ 2.λ Stern-Brocot Treeμ μ μ μμ ν μͺ½ λ°©ν₯μΌλ‘ λ΄λ €κ°λ κ²μ λνλΈλ€. μ¬κΈ°μ, μ°μμΌλ‘ λͺ λ²κΉμ§ κ°μ λ°©ν₯μΌλ‘ λ΄λ €κ°λμ§λ₯Ό μμλΌ μ μλ€λ©΄ νμ νμλ₯Ό μ€μΌ μ μλ€. μλ₯Ό λ€μ΄, μ€κ°κ° $m$λ³΄λ€ μμ μͺ½μΌλ‘ νμμ μ΄μ΄λκ°μΌ νλ€λ©΄, $e$ κ°μ $ \displaystyle \frac{ ta + c }{ tb + d } $ κΌ΄λ‘ μ νν μ μλ€. μ΄κ²μ΄ κ°λ₯ν μ΅λ μ μ $t$λ₯Ό μ΄λΆνμμΌλ‘ μ°ΎμΌλ©΄, μ 체 νμ νμλ₯Ό $O(x+y)$μμ $O \left( x + \lg y \right)$λ‘ ν¬κ² κ°μ ν μ μλ€.
κΈ°νμ μ κ·Ό
λ€μ μλμ λ¬Έμ λ‘ λμμ€μ. μ°λ¦¬λ μλμ κ·Έλ¦Όκ³Ό κ°μ΄ $ \displaystyle y = \frac{N}{x} $ 곑μ μλμ νμ μμμ μ‘΄μ¬νλ μμ μ μ μ $(x, y)$μ μλ₯Ό μΈμ΄μΌ νλ€.
κ·Έλ¦Ό 2: $xy = 20$ κ·Έλνμ νμ μμ
$N = 20$μ΄λΌλ©΄ μ νμ μμ λ΄λΆμ μ μ μ μ κ°μλ₯Ό μΈμ΄μΌ νλ€.
μ΄ κ·Έλνμμ κΈ°μΈκΈ°κ° $-1$μΈ μ μ μ κΈμ. μλμ κ·Έλ¦Όμ μ μ $G$, $x$ μΆκ³Ό $y$ μΆκ³Όμ κ΅μ $P _x$, $P _y$μ λνλ΄μλ€.
κ·Έλ¦Ό 3: $xy = 20$ κ·Έλνμ κΈ°μΈκΈ° $-1$μ μ μ
μ μ $G$μ μ€μν κ΅μ λ κ° $P _x$, $P _y$λ₯Ό λνλ΄μλ€. μ μ μλ μμμ μ μ μ μ κ°μλ μ½κ² μ
μ μλ€.
μ¬κΈ°μ μμ΄λμ΄λ μ΄λ¬νλ€. 곑μ μλμ μ μ μ μ κ°μλ₯Ό μΈλ κ²μ μ΄λ ΅μ§λ§, μ§μ μλμ μ μ μ μ μλ μ¬μΉμ°μ°μ μ΄μ©νμ¬ μμ£Ό μ½κ² μ
μ μλ€.
μ°λ¦¬λ λ¨μ μμμ λνμ¬ μ λΉν κΈ°μΈκΈ°μ μ μ μ κ·Έμ΄ μ μ κ°μλ₯Ό μΈλ μμ
μ μ¬κ·μ μΌλ‘ λ°λ³΅νκ³ μ νλ€. μ μ μ μ κ°μλ μ ννλ―λ‘, μ μ μ κΈ°μΈκΈ°λ₯Ό μ μ€μ νμλ€λ©΄, μ΄λ¬ν μμ
μ μ ν μκ° μμ μ’
λ£ν κ²μ΄λ€.
νΈμλ₯Ό μνμ¬,
κ·Έλ¦Ό 4
μ κ°μ μμ λ΄λΆμ μ μ μ μ κ°μλ₯Ό $\displaystyle f \left( x _0, y _0, \frac{a}{b}, \frac{c}{d} \right)$λ‘ λνλ΄μ. μ΄μ λν μλ°ν μ μλ λ€μκ³Ό κ°λ€.
μμ΄ μλ μ μ $x _0$, $y _0$κ³Ό ν리 μ΄μν λ κΈ°μ½λΆμ $\displaystyle \frac{a}{b}$, $\displaystyle \frac{c}{d}$μ λνμ¬,
μ $P \left( x _0, y _0 \right)$μ μ‘κ³
μ $P$λ‘λΆν° κ°κ° κΈ°μΈκΈ° $\displaystyle - \frac{a}{b}$, $\displaystyle - \frac{c}{d}$μ μ μ μ κ·Έμ΄ κ΅μ $Q$, $R$λ₯Ό μ‘μμ λ
μ§μ κ³Ό 곑μ μΌλ‘ λ«ν μΌκ° μμ $PQR$ λ΄λΆμ μ μ μ μ κ°μλ₯Ό $\displaystyle f \left( x _0, y _0, \frac{a}{b}, \frac{c}{d} \right)$λ‘ μ μνλ€.
μΈμκ° μκΈ°ν 쑰건μ λ§μ‘±νμ§ μμΌλ©΄, νΈμμ $\displaystyle f \left( x _0, y _0, \frac{a}{b}, \frac{c}{d} \right) = 0$μΌλ‘ μ μνλ€.
κ·Έλ¦Ό 4: μ $P$, $Q$, $R$κ³Ό νμ μΌκ° μμ
$\displaystyle f \left( x _0, y _0, \frac{a}{b}, \frac{c}{d} \right)$μ μ μμμ μ¬μ©λλ μΈ μ μ λνλ΄μλ€.
μ°λ¦¬λ κ²°κ΅ $\displaystyle f \left( x _0, y _0, \frac{a}{b}, \frac{c}{d} \right)$κ° 0μ΄ λ λκΉμ§ μ¬κ·μ μΌλ‘ νμμ μ΄μ΄λκ°μΌ νλ€. λ°λΌμ, μ΄ ν¨μ«κ°μ κ³μ°ν μ μμ΄μΌ νλ€. μ΄λ₯Ό μ΄λ»κ² κ³μ°ν μ μμκΉ?
κ·Έλ¦Ό 4
μ λ μ μ μ κ°κ° μλ‘μ΄ μΆμΌλ‘ μ‘κ³ , μ $P$λ₯Ό μμ μΌλ‘ μκ°ν μλ‘μ΄ μ’νκ³ $u-v$λ₯Ό μκ°νμ. $u$ μΆμ΄ μ§μ $PR$, $v$ μΆμ΄ μ§μ $PQ$μ΄λ€. μ΄ κ²½μ° νμ μμμ λ€μκ³Ό κ°μ΄ λ³νλλ€.
κ·Έλ¦Ό 5: λ³νλ μλ‘μ΄ μμ
λλμ΄ μ°λ¦¬λ μ¬κ·μ μΌλ‘ μ μ μ μ κ°μλ₯Ό μ
μ μκ² λμλ€!
μκ° λ³΅μ‘λ
μ¬κ·μ μΌλ‘ λ³νλ μ μ μ κΈ°μΈκΈ°λ Stern-Brocot Treeμμ κ²½λ‘λ₯Ό λ°λΌ μλλ‘ λ΄λ €κ°λ κ²κ³Ό κ°μΌλ―λ‘, μκ° λ³΅μ‘λλ₯Ό μλμ κ°μ΄ μΈ μ μλ€.
\[O \left( \sum _{ ad - bc = 1 } I \left[ \sqrt{ \frac{N}{ c/d } } - \sqrt{ \frac{N}{ a/b } } \ge b + d \right] \right)\]
\[= O \left( \sum _{ ad - bc = 1 } I \left[ \frac{ \sqrt{bc + 1} - \sqrt{bc} }{ \sqrt{ac} } \ge \frac{ b + d }{ \sqrt{N} } \right] \right)\]
\[= O \left( \sum _{ ad - bc = 1} I \left[ \frac{1}{ \sqrt{ab} c } \ge \frac{b+d}{\sqrt{N}} \right] \right) = O \left( \sum _{ad - bc = 1} I \left[ ab c^2 \left( b + d \right)^2 \ge N \right] \right)\]
λ§μ§λ§ μ€μμλ $ \displaystyle \sqrt{x+1} - \sqrt{x} = O \left( \frac{1}{ \sqrt{x} } \right) $κ° μ¬μ©λμλ€.
μ΄μ , $t = bc$ μΉνμ μ μ©νλ©΄,
\[O \left( \sum _{t} \sum _{ b | t} \sum _{ a | (t+1) } I \left[ \frac{t^4}{ab} + t^3 + ab t^2 \ge N \right] \right)\]
\[= O \left( \sum _{t = 1}^{N^{1/3}} \sigma(t) \sigma(t+1) \right) = O \left( \sum _{t=1}^{N^{1/3}} \sigma^2 (t) \right)\]
μλ°ν μ¦λͺ
μ΄λ μ μ κ°λ μλ΅νμλ€.
μ΄μ , λ€μμ μ μλ €μ§ μ 리λ₯Ό μ μ©νμ.
\[\sum _{k=1}^{N} \sigma^2 (k) = \Theta \left( N \lg^3 N \right)\]
μ¦, μμ ν μκ³ λ¦¬μ¦μ μκ° λ³΅μ‘λλ $ \displaystyle O \left( N^{ \frac{1}{3} } \lg^3 N \right) = \tilde{O}\left( N^{ \frac{1}{3} } \right) $ μμ μ μ μλ€.
κ²°λ‘
μλ‘ μ ν¨μλ μ μλ‘ λΏλ§ μλλΌ μ»΄ν¨ν°κ³Όν, μκ³ λ¦¬μ¦, PS λΆμΌμλ μ¬μ©λ μ λλ‘ μ€μνλ©° κ·Έ νμ΄ μμ£Ό λλ€.
μ°λ¦¬λ λνμ μΈ μλ‘ μ ν¨μ $\sigma (n)$μ κ΅¬κ° ν© $ \displaystyle \sum _{k=1}^{N} \sigma(k) $μ ν¨μ¨μ μΌλ‘ κ³μ°νλ μκ³ λ¦¬μ¦μ λνμ¬ μμ보μλ€.
μΌλ°μ μΈ μ μ κ°λ‘λ $ \displaystyle O \left( \sqrt{N} \right) $κΉμ§ μκ° λ³΅μ‘λλ₯Ό μ€μΌ μ μμλ€. κ·Έλ¬λ, $N$μ΄ μμ£Ό ν° μλΌλ©΄ μ΄ λ°©λ²λ μμ§μ λ리λ€.
μ°λ¦¬λ $ \displaystyle y = \frac{N}{x} $ κ·Έλνμ ꡬνκ³ μ νλ κ°κ³Όμ κ΄κ³λ₯Ό μμλ΄κ³ , κ·Έλνμ λ³Όλ‘μ±μ΄λΌλ κΈ°νμ νΉμ±κ³Ό Stern-Brocot Tree μλ£κ΅¬μ‘°λ₯Ό νμ©νμ¬, μ¬κ·μ μΌλ‘ κ°μ κ³μ°νλ μλ‘μ΄ μκ³ λ¦¬μ¦μ μ‘°μ¬νμλ€.
λν, μ΄ μκ³ λ¦¬μ¦μ μκ° λ³΅μ‘λκ° $ \displaystyle \tilde{O} \left( N^{1/3} \right) $λ‘ μμ£Ό ν¨μ¨μ μμ λ°νλ€.
μ΄λ¬ν μκ³ λ¦¬μ¦μ μμ΄λμ΄λ λ€μν λ³Όλ‘ ν¨μμ λνμ¬ μ λͺ©μν¬ μ μμΌλ©°, κ·Έ μμ©μ±μ΄ λλ€. λ€μ κΈμλ $\sigma (n)$ μΈμ λ€λ₯Έ μλ‘ μ ν¨μμ κ΅¬κ° ν©μ ν¨μ¨μ μΌλ‘ κ³μ°νλ λ°©λ²μ λνμ¬ μμλ³Έλ€. |
| Markdown | [Gyojun Youn's PS Blog](https://youngyojun.github.io/)
@youngyojun, @GyojunYoun, and @yclock's PS Blog
- [ν](https://youngyojun.github.io/)
- [About](https://youngyojun.github.io/about/)
- [μΉ΄ν
κ³ λ¦¬](https://youngyojun.github.io/categories/)
- [μμΉ΄μ΄λΈ](https://youngyojun.github.io/archives/)
- [νκ·Έ](https://youngyojun.github.io/tags/)
- [κ²μ]()
# Stern-Brocot Treeλ₯Ό νμ©ν μλ‘ μ ν¨μμ ν© κ³μ°
μμ±μΌ
2022-02-18
\| In [Secmem](https://youngyojun.github.io/category/#/Secmem) \| [0 Comments](https://youngyojun.github.io/secmem/2022/02/18/sigma-sum-stern-brocot/#comments)
# κ°μ
μ μλ‘ μμ μ£Όλ‘ λ€λ£¨λ μ€μν [μλ‘ μ ν¨μ](https://en.wikipedia.org/wiki/Arithmetic_function)λ‘λ μ½μ ν¨μ \$\\sigma\_k (n)\$, μ€μΌλ¬ νΌ ν¨μ \$\\phi (n)\$, λ«ΌλΉμ°μ€ ν¨μ \$\\mu (n)\$ λ±μ΄ μλ€. μ΄λ¬ν ν¨μμ νλ¬Έμ μ€μλλ μ΄λ£¨ λ§ν μ μμΌλ©°, μ»΄ν¨ν°κ³Όνμ PS λΆμΌμλ μ’
μ’
λ±μ₯ν μ λλ‘ λ€μνκ² νμ©λλ€.
λ³Έ κΈμ μλ‘ μ ν¨μμ λνμΈ μ½μ ν¨μ \$\\sigma (n)\$μ κ΅¬κ° ν©μ ν¨μ¨μ μΌλ‘ κ³μ°νλ μκ³ λ¦¬μ¦μ μμ νλ€. ν¨μμ ν©μ κΈ°νμ μΌλ‘ ν΄μν ν, μ΄λ₯Ό Stern-Brocot Tree μλ£κ΅¬μ‘°λ‘ κ³μ°νλ€. μ΄ν, μ΄ μκ³ λ¦¬μ¦μ μκ° λ³΅μ‘λκ° \$\\tilde{O} \\left( N^{1/3} \\right)\$λ‘ μμ£Ό ν¨μ¨μ μμ 보μΈλ€.
# λ¬Έμ μ κΈ°
## μ½μ ν¨μμ ν© λ¬Έμ
μμ μ μ \$n\$μ λνμ¬, \$n\$μ λͺ¨λ μμ μ½μμ \$k\$μ κ³±μ ν©μ μκ°νμ. μ΄κ²μ΄ [μ½μ ν¨μ](https://en.wikipedia.org/wiki/Divisor_function) \$\\sigma\_k (n)\$μ μ μμ΄λ€.
> \\\[\\sigma\_k (n) := \\sum\_{ d \| n } d^k\\\]
μ΄ κΈμμλ \$k = 1\$μΈ μκ·Έλ§ ν¨μ \$\\sigma (n) := \\sigma\_1 (n)\$μ λνμ¬ μ£Όλ‘ λ€λ£¬λ€. μ΄ κ°μ \$n\$μ μ½μμ ν©μ λνλΈλ€.
μ΄μ , μ μ \$N\$μ΄ μ£Όμ΄μ‘μ λ, 1λΆν° \$N\$κΉμ§ μκ·Έλ§ ν¨μ«κ°μ ν© \$ \\displaystyle \\sum\_{k=1}^{N} \\sigma(k) \$μ ꡬνλ λ¬Έμ λ₯Ό μκ°νμ.
## μ μλ‘ μ μ κ·Ό
\$\\sigma(1) + \\cdots + \\sigma(N)\$μ κ°μ λ€μ 쑰건μ λ§μ‘±νλ μμ μ μ μ \$(n, d)\$μ κ°μμ κ°λ€.
> 1. \$d\$λ \$n\$μ μ½μ
> 2. \$1 \\le d \\le n \\le N\$
μ΄λ μκ·Έλ§ ν¨μμ μ μλ₯Ό μκ°ν λ, \$\\sigma(k)\$μ κ°μ \$n = k\$μΈ \$(n, d)\$μ κ°μμ κ°μΌλ―λ‘ μλͺ
νλ€.
μ΄μ , \$d\$μ κ°μ κ³ μ ν ν, μμ 쑰건μ λ§μ‘±νλ \$n\$μ κ°μλ₯Ό μΈμ. \$n\$μ \$N\$ μ΄νμΈ \$d\$μ λ°°μλΌμΌ νλ―λ‘, μ΄ \$ \\displaystyle \\left\\lfloor \\frac{ N }{ d } \\right\\rfloor \$κ°λ§νΌ μ‘΄μ¬νλ€.
\\\[\\sum \_{k=1}^{N} \\sigma(k) = \\sum \_{d=1}^{N} \\left\\lfloor \\frac{ N }{ d } \\right\\rfloor\\\]
μ΄λ λ€λ₯΄κ² ν΄μνλ©΄, \$y = \\frac{N}{x}\$ κ·Έλν μλμ μλ μμ μ μ μ \$(x, y)\$μ κ°μλ₯Ό μΈλ κ²κ³Ό κ°λ€. 곑μ \$xy = N\$μ μ§μ \$x = y\$μ λνμ¬ λμΉμ΄λ©°, μ΄ λμ κ΅μ μ \$\\left( \\sqrt{N}, \\sqrt{N} \\right)\$μ΄λ―λ‘, μ΅μ’
μ μΌλ‘ μλμ μμ μ»μ μ μλ€.
\\\[\\sum \_{d=1}^{N} \\left\\lfloor \\frac{ N }{ d } \\right\\rfloor = 2 \\sum \_{x=1}^{ \\left\\lfloor \\sqrt{N} \\right\\rfloor } \\left\\lfloor \\frac{ N }{ x } \\right\\rfloor - { \\left\\lfloor \\sqrt{N} \\right\\rfloor }^2\\\]
μ°λ¦¬λ μκ·Έλ§ ν¨μ \$\\sigma(n)\$μ κ°μ μ΄λ»κ² κ³μ°νλμ§ μμ§ μμλ, μκ·Έλ§ ν¨μμ ν©μ \$O \\left( \\sqrt{N} \\right)\$λ§μ μ½κ² κ³μ°ν μ μκ² λμλ€.
κ·Έλ¬λ \$N\$μ΄ \$10^{18}\$-scaleλ‘ μμ£Ό ν° μλΌλ©΄, μ°λ¦¬λ μ΄λ³΄λ€λ λμ± ν¨μ¨μ μΈ λ°©λ²μ μ°ΎμμΌ νλ€.
# Stern-Brocot Tree
ν¨μ¨μ μΈ μκ³ λ¦¬μ¦μ ꡬμνκΈ° μ μ, ν리 μμ΄κ³Ό Stern-Brocot Tree μλ£κ΅¬μ‘°μ λνμ¬ λ¨Όμ μμ보μ.
## Farey Sequence
Stern-Brocot Treeμ λνμ¬ λ
ΌνκΈ° μ μ, λ¨Όμ [ν리 μμ΄](https://en.wikipedia.org/wiki/Farey_sequence)μ μ μλ₯Ό μκ°νλ€. \$n\$λ²μ§Έ ν리 μμ΄ \$F\_n\$λ λ€μμ λ§μ‘±νλ λͺ¨λ κΈ°μ½λΆμ \$ \\displaystyle \\frac{a}{b} \$λ₯Ό μ€λ¦μ°¨μμΌλ‘ λμ΄ν μμ΄μ΄λ€.
> 1. \$0 \\le b \\le a \\le n\$
> 2. \$\\gcd (a, b) = 1\$
μλ₯Ό λ€μ΄, λͺλͺμ \$n\$μ λνμ¬ ν리 μμ΄ \$F\_n\$μ λμ΄νλ©΄ μλμ κ°λ€.
> \\\[F \_1 = \\left\\{ \\frac{0}{1}, \\frac{1}{1} \\right\\}\\\] \\\[F \_2 = \\left\\{ \\frac{0}{1}, \\frac{1}{2}, \\frac{1}{1} \\right\\}\\\] \\\[F \_5 = \\left\\{ \\frac{0}{1}, \\frac{1}{5}, \\frac{1}{4}, \\frac{1}{3}, \\frac{2}{5}, \\frac{1}{2}, \\frac{3}{5}, \\frac{2}{3}, \\frac{3}{4}, \\frac{4}{5}, \\frac{1}{1} \\right\\}\\\]
μ¬κΈ°μ, ν리 μμ΄ \$F\_n\$μμ μΈμ ν λ μ 리μλ₯Ό βμ°¨μ \$n\$μμ ν리 μ΄μνλ€βλΌκ³ νλ€. ν리 μ΄μμ κ΄ν μ€μν μ 리λ₯Ό νλ μκ°νλ€.
> μ°¨μμ μκ΄μμ΄, ν리 μ΄μν λ μ 리μ \$ \\displaystyle \\frac{a}{b} \> \\frac{c}{d} \$λ \$ad - bc = 1\$μ λ§μ‘±νλ€.
μ΄ μ 리λ μλμ μμ ν Stern-Brocot Treeμ κ΄ν μ 리μ κΈ°λ°μ΄ λλ€.
## Stern-Brocot Tree
ν리 μμ΄ \$F\_n\$μ νμ₯νμ¬, κ° μ 리μμ μμκΉμ§ λ±μ₯νλ μμ΄μ μκ°νμ. νΈμμ, \$ \\displaystyle \\frac{1}{0} = + \\infty \$λ‘ μκ°νλ©΄, μ΄ μμ΄μ \$ \\displaystyle \\frac{0}{1} = 0 \$ μ΄μ \$ \\displaystyle \\frac{1}{0} = + \\infty \$ μ΄νμΈ κΈ°μ½λΆμλ₯Ό μ λμ΄ν κ²μ΄λ€.
μ€μ λ‘, \$0\$ μ΄μμ λͺ¨λ μ 리μλ μΆ©λΆν ν° \$n\$μ λνμ¬ νμ₯λ ν리 μμ΄ \$Fβ \_n\$μ μ ννκ² ν λ² λ±μ₯ν¨μ μ¦λͺ
ν μ μλ€. μ΄μ , κΉμ΄ \$n\$μ ν΄λΉνλ μΈ΅μ νμ₯λ ν리 μμ΄ \$Fβ \_n\$μ μ μ΄, μλ κ·Έλ¦Όκ³Ό κ°μ μ΄μ§ νΈλ¦¬λ₯Ό μκ°νμ.
[](https://youngyojun.github.io/assets/images/posts/2022-02-18-sigma-sum-stern-brocot/SternBrocotTree.png)
**κ·Έλ¦Ό 1: SternβBrocot Tree**
νμ₯λ ν리 μμ΄ \$F' \_1\$λΆν° \$F' \_4\$κΉμ§ νμ©νμ¬ κΉμ΄ 4μ Stern-Brocot Treeλ₯Ό λ§λ€ μ μλ€.
μ΄ νΈλ¦¬λ (1) **μμ μ΄μ§ κ²μ νΈλ¦¬**μ΄λ©°, (2) **λͺ¨λ μμ μ 리μκ° μ ννκ² ν λ²μ© λ±μ₯**νλ€λ κ°λ ₯ν μ±μ§μ κ°μ§λ€. λν, νΈλ¦¬ κ·Έ μμ²΄λ‘ μ 리μμ μμ°μ κ°μ μΌλμΌ λμμ μ 보μ¬μ€λ€.
μ΄λ¬ν μμ μ΄μ§ κ²μ νΈλ¦¬λ₯Ό [Stern-Brocot Tree](https://en.wikipedia.org/wiki/Stern%E2%80%93Brocot_tree)λΌκ³ λΆλ₯Έλ€.
## μ 리μ μ΄λΆνμ
μκ³ λ¦¬μ¦ λΆμΌμμ Stern-Brocot Treeλ μ 리μλ₯Ό λμμΌλ‘ μ΄λΆνμμ ν μ μκ² λμλ€λ μ μμ κ·Έ μλ―Έκ° κΉλ€.
λ μ 리μ \$ \\displaystyle \\frac{a}{b} \< \\frac{c}{d} \$μ λνμ¬, \$\\displaystyle \\frac{a}{b}\$ μ΄κ³Ό \$\\displaystyle \\frac{c}{d}\$ λ―Έλ§μ λͺ¨λ μ 리μλ₯Ό λ΄κ³ μλ Stern-Brocot Subtreeμ λ£¨νΈ μ μ μ \$\\displaystyle \\frac{a+c}{b+d}\$μ΄λ€.
μ΄λ₯Ό κ·Έλλ‘ νμ©νλ©΄, λ€μκ³Ό κ°μ μ΄λΆνμ μκ³ λ¦¬μ¦μ μκ°ν μ μλ€.
> 1. \$ \\displaystyle s := \\frac{a}{b} = \\frac{0}{1} \$, \$ \\displaystyle e := \\frac{c}{d} = \\frac{1}{0} \$μΌλ‘ μ€μ νλ€. μ΄μ , κ° μ€ν
λ§λ€ \$s\$ μ΄κ³Ό \$e\$ λ―Έλ§μΈ μ 리μμ λνμ¬ μ΄λΆνμμ μννλ€.
> 2. μ€κ°κ° \$ \\displaystyle m := \\frac{ a+c }{ b+d } \$μ μ‘μ.
> 1. λ§μ½, \$m\$μ΄ μ°Ύκ³ μ νλ μ 리μλΌλ©΄, νμμ λ©μΆλ€.
> 2. μλλΌλ©΄, μ°Ύκ³ μ νλ μ 리μμ \$m\$μ λν λμλΉκ΅λ₯Ό μννλ€.
> 3. \$(s, e)\$λ₯Ό \$(s, m)\$ νΉμ \$(m, e)\$λ‘ λμ
ν ν, μμ κ³Όμ μ λ°λ³΅νλ€.
μ΄λ¬ν μ΄λΆνμ κ³Όμ μ ν΅νμ¬ μ΅μ’
μ μΌλ‘ κΈ°μ½λΆμ \$ \\displaystyle \\frac{x}{y} \$λ₯Ό μ»μλ€λ©΄, νμ νμλ Stern-Brocot Treeμμ μ μ \$ \\displaystyle \\frac{x}{y} \$μ κΉμ΄μ κ°μΌλ―λ‘ \$O(x+y)\$μ΄λ€.
κ³Όμ 2.λ Stern-Brocot Treeμ μ μ μμ ν μͺ½ λ°©ν₯μΌλ‘ λ΄λ €κ°λ κ²μ λνλΈλ€. μ¬κΈ°μ, μ°μμΌλ‘ λͺ λ²κΉμ§ κ°μ λ°©ν₯μΌλ‘ λ΄λ €κ°λμ§λ₯Ό μμλΌ μ μλ€λ©΄ νμ νμλ₯Ό μ€μΌ μ μλ€. μλ₯Ό λ€μ΄, μ€κ°κ° \$m\$λ³΄λ€ μμ μͺ½μΌλ‘ νμμ μ΄μ΄λκ°μΌ νλ€λ©΄, \$e\$ κ°μ \$ \\displaystyle \\frac{ ta + c }{ tb + d } \$ κΌ΄λ‘ μ νν μ μλ€. μ΄κ²μ΄ κ°λ₯ν μ΅λ μ μ \$t\$λ₯Ό μ΄λΆνμμΌλ‘ μ°ΎμΌλ©΄, μ 체 νμ νμλ₯Ό \$O(x+y)\$μμ \$O \\left( x + \\lg y \\right)\$λ‘ ν¬κ² κ°μ ν μ μλ€.
# κΈ°νμ μ κ·Ό
λ€μ μλμ λ¬Έμ λ‘ λμμ€μ. μ°λ¦¬λ μλμ κ·Έλ¦Όκ³Ό κ°μ΄ \$ \\displaystyle y = \\frac{N}{x} \$ 곑μ μλμ νμ μμμ μ‘΄μ¬νλ μμ μ μ μ \$(x, y)\$μ μλ₯Ό μΈμ΄μΌ νλ€.
[](https://youngyojun.github.io/assets/images/posts/2022-02-18-sigma-sum-stern-brocot/1.png)
**κ·Έλ¦Ό 2: \$xy = 20\$ κ·Έλνμ νμ μμ**
\$N = 20\$μ΄λΌλ©΄ μ νμ μμ λ΄λΆμ μ μ μ μ κ°μλ₯Ό μΈμ΄μΌ νλ€.
μ΄ κ·Έλνμμ κΈ°μΈκΈ°κ° \$-1\$μΈ μ μ μ κΈμ. μλμ κ·Έλ¦Όμ μ μ \$G\$, \$x\$ μΆκ³Ό \$y\$ μΆκ³Όμ κ΅μ \$P \_x\$, \$P \_y\$μ λνλ΄μλ€.
[](https://youngyojun.github.io/assets/images/posts/2022-02-18-sigma-sum-stern-brocot/2.png)
**κ·Έλ¦Ό 3: \$xy = 20\$ κ·Έλνμ κΈ°μΈκΈ° \$-1\$μ μ μ **
μ μ \$G\$μ μ€μν κ΅μ λ κ° \$P \_x\$, \$P \_y\$λ₯Ό λνλ΄μλ€. μ μ μλ μμμ μ μ μ μ κ°μλ μ½κ² μ
μ μλ€.
μ¬κΈ°μ μμ΄λμ΄λ μ΄λ¬νλ€. 곑μ μλμ μ μ μ μ κ°μλ₯Ό μΈλ κ²μ μ΄λ ΅μ§λ§, μ§μ μλμ μ μ μ μ μλ μ¬μΉμ°μ°μ μ΄μ©νμ¬ μμ£Ό μ½κ² μ
μ μλ€.
μ°λ¦¬λ λ¨μ μμμ λνμ¬ μ λΉν κΈ°μΈκΈ°μ μ μ μ κ·Έμ΄ μ μ κ°μλ₯Ό μΈλ μμ
μ μ¬κ·μ μΌλ‘ λ°λ³΅νκ³ μ νλ€. μ μ μ μ κ°μλ μ ννλ―λ‘, μ μ μ κΈ°μΈκΈ°λ₯Ό μ μ€μ νμλ€λ©΄, μ΄λ¬ν μμ
μ μ ν μκ° μμ μ’
λ£ν κ²μ΄λ€.
νΈμλ₯Ό μνμ¬, **κ·Έλ¦Ό 4**μ κ°μ μμ λ΄λΆμ μ μ μ μ κ°μλ₯Ό \$\\displaystyle f \\left( x \_0, y \_0, \\frac{a}{b}, \\frac{c}{d} \\right)\$λ‘ λνλ΄μ. μ΄μ λν μλ°ν μ μλ λ€μκ³Ό κ°λ€.
> μμ΄ μλ μ μ \$x \_0\$, \$y \_0\$κ³Ό ν리 μ΄μν λ κΈ°μ½λΆμ \$\\displaystyle \\frac{a}{b}\$, \$\\displaystyle \\frac{c}{d}\$μ λνμ¬,
>
> 1. μ \$P \\left( x \_0, y \_0 \\right)\$μ μ‘κ³
> 2. μ \$P\$λ‘λΆν° κ°κ° κΈ°μΈκΈ° \$\\displaystyle - \\frac{a}{b}\$, \$\\displaystyle - \\frac{c}{d}\$μ μ μ μ κ·Έμ΄ κ΅μ \$Q\$, \$R\$λ₯Ό μ‘μμ λ
> 3. μ§μ κ³Ό 곑μ μΌλ‘ λ«ν μΌκ° μμ \$PQR\$ λ΄λΆμ μ μ μ μ κ°μλ₯Ό \$\\displaystyle f \\left( x \_0, y \_0, \\frac{a}{b}, \\frac{c}{d} \\right)\$λ‘ μ μνλ€.
> 4. μΈμκ° μκΈ°ν 쑰건μ λ§μ‘±νμ§ μμΌλ©΄, νΈμμ \$\\displaystyle f \\left( x \_0, y \_0, \\frac{a}{b}, \\frac{c}{d} \\right) = 0\$μΌλ‘ μ μνλ€.
[](https://youngyojun.github.io/assets/images/posts/2022-02-18-sigma-sum-stern-brocot/3.png)
**κ·Έλ¦Ό 4: μ \$P\$, \$Q\$, \$R\$κ³Ό νμ μΌκ° μμ**
\$\\displaystyle f \\left( x \_0, y \_0, \\frac{a}{b}, \\frac{c}{d} \\right)\$μ μ μμμ μ¬μ©λλ μΈ μ μ λνλ΄μλ€.
μ°λ¦¬λ κ²°κ΅ \$\\displaystyle f \\left( x \_0, y \_0, \\frac{a}{b}, \\frac{c}{d} \\right)\$κ° 0μ΄ λ λκΉμ§ μ¬κ·μ μΌλ‘ νμμ μ΄μ΄λκ°μΌ νλ€. λ°λΌμ, μ΄ ν¨μ«κ°μ κ³μ°ν μ μμ΄μΌ νλ€. μ΄λ₯Ό μ΄λ»κ² κ³μ°ν μ μμκΉ?
**κ·Έλ¦Ό 4**μ λ μ μ μ κ°κ° μλ‘μ΄ μΆμΌλ‘ μ‘κ³ , μ \$P\$λ₯Ό μμ μΌλ‘ μκ°ν μλ‘μ΄ μ’νκ³ \$u-v\$λ₯Ό μκ°νμ. \$u\$ μΆμ΄ μ§μ \$PR\$, \$v\$ μΆμ΄ μ§μ \$PQ\$μ΄λ€. μ΄ κ²½μ° νμ μμμ λ€μκ³Ό κ°μ΄ λ³νλλ€.
[](https://youngyojun.github.io/assets/images/posts/2022-02-18-sigma-sum-stern-brocot/4.png)
**κ·Έλ¦Ό 5: λ³νλ μλ‘μ΄ μμ**
λλμ΄ μ°λ¦¬λ μ¬κ·μ μΌλ‘ μ μ μ μ κ°μλ₯Ό μ
μ μκ² λμλ€\!
# μκ° λ³΅μ‘λ
μ¬κ·μ μΌλ‘ λ³νλ μ μ μ κΈ°μΈκΈ°λ Stern-Brocot Treeμμ κ²½λ‘λ₯Ό λ°λΌ μλλ‘ λ΄λ €κ°λ κ²κ³Ό κ°μΌλ―λ‘, μκ° λ³΅μ‘λλ₯Ό μλμ κ°μ΄ μΈ μ μλ€.
\\\[O \\left( \\sum \_{ ad - bc = 1 } I \\left\[ \\sqrt{ \\frac{N}{ c/d } } - \\sqrt{ \\frac{N}{ a/b } } \\ge b + d \\right\] \\right)\\\] \\\[= O \\left( \\sum \_{ ad - bc = 1 } I \\left\[ \\frac{ \\sqrt{bc + 1} - \\sqrt{bc} }{ \\sqrt{ac} } \\ge \\frac{ b + d }{ \\sqrt{N} } \\right\] \\right)\\\] \\\[= O \\left( \\sum \_{ ad - bc = 1} I \\left\[ \\frac{1}{ \\sqrt{ab} c } \\ge \\frac{b+d}{\\sqrt{N}} \\right\] \\right) = O \\left( \\sum \_{ad - bc = 1} I \\left\[ ab c^2 \\left( b + d \\right)^2 \\ge N \\right\] \\right)\\\]
λ§μ§λ§ μ€μμλ \$ \\displaystyle \\sqrt{x+1} - \\sqrt{x} = O \\left( \\frac{1}{ \\sqrt{x} } \\right) \$κ° μ¬μ©λμλ€.
μ΄μ , \$t = bc\$ μΉνμ μ μ©νλ©΄,
\\\[O \\left( \\sum \_{t} \\sum \_{ b \| t} \\sum \_{ a \| (t+1) } I \\left\[ \\frac{t^4}{ab} + t^3 + ab t^2 \\ge N \\right\] \\right)\\\] \\\[= O \\left( \\sum \_{t = 1}^{N^{1/3}} \\sigma(t) \\sigma(t+1) \\right) = O \\left( \\sum \_{t=1}^{N^{1/3}} \\sigma^2 (t) \\right)\\\]
μλ°ν μ¦λͺ
μ΄λ μ μ κ°λ μλ΅νμλ€.
μ΄μ , λ€μμ μ μλ €μ§ μ 리λ₯Ό μ μ©νμ.
> \\\[\\sum \_{k=1}^{N} \\sigma^2 (k) = \\Theta \\left( N \\lg^3 N \\right)\\\]
μ¦, μμ ν μκ³ λ¦¬μ¦μ μκ° λ³΅μ‘λλ \$ \\displaystyle O \\left( N^{ \\frac{1}{3} } \\lg^3 N \\right) = \\tilde{O}\\left( N^{ \\frac{1}{3} } \\right) \$ μμ μ μ μλ€.
# κ²°λ‘
μλ‘ μ ν¨μλ μ μλ‘ λΏλ§ μλλΌ μ»΄ν¨ν°κ³Όν, μκ³ λ¦¬μ¦, PS λΆμΌμλ μ¬μ©λ μ λλ‘ μ€μνλ©° κ·Έ νμ΄ μμ£Ό λλ€.
μ°λ¦¬λ λνμ μΈ μλ‘ μ ν¨μ \$\\sigma (n)\$μ κ΅¬κ° ν© \$ \\displaystyle \\sum \_{k=1}^{N} \\sigma(k) \$μ ν¨μ¨μ μΌλ‘ κ³μ°νλ μκ³ λ¦¬μ¦μ λνμ¬ μμ보μλ€.
μΌλ°μ μΈ μ μ κ°λ‘λ \$ \\displaystyle O \\left( \\sqrt{N} \\right) \$κΉμ§ μκ° λ³΅μ‘λλ₯Ό μ€μΌ μ μμλ€. κ·Έλ¬λ, \$N\$μ΄ μμ£Ό ν° μλΌλ©΄ μ΄ λ°©λ²λ μμ§μ λ리λ€.
μ°λ¦¬λ \$ \\displaystyle y = \\frac{N}{x} \$ κ·Έλνμ ꡬνκ³ μ νλ κ°κ³Όμ κ΄κ³λ₯Ό μμλ΄κ³ , κ·Έλνμ λ³Όλ‘μ±μ΄λΌλ κΈ°νμ νΉμ±κ³Ό Stern-Brocot Tree μλ£κ΅¬μ‘°λ₯Ό νμ©νμ¬, μ¬κ·μ μΌλ‘ κ°μ κ³μ°νλ μλ‘μ΄ μκ³ λ¦¬μ¦μ μ‘°μ¬νμλ€.
λν, μ΄ μκ³ λ¦¬μ¦μ μκ° λ³΅μ‘λκ° \$ \\displaystyle \\tilde{O} \\left( N^{1/3} \\right) \$λ‘ μμ£Ό ν¨μ¨μ μμ λ°νλ€.
μ΄λ¬ν μκ³ λ¦¬μ¦μ μμ΄λμ΄λ λ€μν λ³Όλ‘ ν¨μμ λνμ¬ μ λͺ©μν¬ μ μμΌλ©°, κ·Έ μμ©μ±μ΄ λλ€. λ€μ κΈμλ \$\\sigma (n)\$ μΈμ λ€λ₯Έ μλ‘ μ ν¨μμ κ΅¬κ° ν©μ ν¨μ¨μ μΌλ‘ κ³μ°νλ λ°©λ²μ λνμ¬ μμλ³Έλ€.
[\# Algorithm](https://youngyojun.github.io/tag/#/Algorithm) [\# Mathematics](https://youngyojun.github.io/tag/#/Mathematics)
[μ€λ¬΄μμ λΉ λ₯΄κ² LCSλ₯Ό κ³μ°νλ μ€μ©μ μΈ Hunt-Szymanski μκ³ λ¦¬μ¦μ κ΄νμ¬](https://youngyojun.github.io/secmem/2022/03/20/Hunt-Szymanski/ "μ€λ¬΄μμ λΉ λ₯΄κ² LCSλ₯Ό κ³μ°νλ μ€μ©μ μΈ Hunt-Szymanski μκ³ λ¦¬μ¦μ κ΄νμ¬")
[μ νλΈλ‘μ μ‘°ν©λ‘ μ μλ―Έμ μκ³ λ¦¬μ¦μ μμ© (1)](https://youngyojun.github.io/secmem/2021/09/19/young-tableaux/ "μ νλΈλ‘μ μ‘°ν©λ‘ μ μλ―Έμ μκ³ λ¦¬μ¦μ μμ© (1)")
- λͺ©μ°¨
- νμ΄λ³΄κΈ°

Gyojun Youn
@youngyojun, GyojunYoun, and yclock's PS Blog
[30 ν¬μ€νΈ](https://youngyojun.github.io/archives/)
[10 μΉ΄ν
κ³ λ¦¬](https://youngyojun.github.io/categories/)
[18 νκ·Έ](https://youngyojun.github.io/tags/)
1. [1 κ°μ](https://youngyojun.github.io/secmem/2022/02/18/sigma-sum-stern-brocot/#%EA%B0%9C%EC%9A%94)
2. [2 λ¬Έμ μ κΈ°](https://youngyojun.github.io/secmem/2022/02/18/sigma-sum-stern-brocot/#%EB%AC%B8%EC%A0%9C-%EC%A0%9C%EA%B8%B0)
1. [2\.1 μ½μ ν¨μμ ν© λ¬Έμ ](https://youngyojun.github.io/secmem/2022/02/18/sigma-sum-stern-brocot/#%EC%95%BD%EC%88%98-%ED%95%A8%EC%88%98%EC%9D%98-%ED%95%A9-%EB%AC%B8%EC%A0%9C)
2. [2\.2 μ μλ‘ μ μ κ·Ό](https://youngyojun.github.io/secmem/2022/02/18/sigma-sum-stern-brocot/#%EC%A0%95%EC%88%98%EB%A1%A0%EC%A0%81-%EC%A0%91%EA%B7%BC)
3. [3 Stern-Brocot Tree](https://youngyojun.github.io/secmem/2022/02/18/sigma-sum-stern-brocot/#stern-brocot-tree)
1. [3\.1 Farey Sequence](https://youngyojun.github.io/secmem/2022/02/18/sigma-sum-stern-brocot/#farey-sequence)
2. [3\.2 Stern-Brocot Tree](https://youngyojun.github.io/secmem/2022/02/18/sigma-sum-stern-brocot/#stern-brocot-tree-1)
3. [3\.3 μ 리μ μ΄λΆνμ](https://youngyojun.github.io/secmem/2022/02/18/sigma-sum-stern-brocot/#%EC%9C%A0%EB%A6%AC%EC%88%98-%EC%9D%B4%EB%B6%84%ED%83%90%EC%83%89)
4. [4 κΈ°νμ μ κ·Ό](https://youngyojun.github.io/secmem/2022/02/18/sigma-sum-stern-brocot/#%EA%B8%B0%ED%95%98%EC%A0%81-%EC%A0%91%EA%B7%BC)
5. [5 μκ° λ³΅μ‘λ](https://youngyojun.github.io/secmem/2022/02/18/sigma-sum-stern-brocot/#%EC%8B%9C%EA%B0%84-%EB%B3%B5%EC%9E%A1%EB%8F%84)
6. [6 κ²°λ‘ ](https://youngyojun.github.io/secmem/2022/02/18/sigma-sum-stern-brocot/#%EA%B2%B0%EB%A1%A0)
Β© 2020 - 2025 Gyojun Youn
Powered by [Jekyll](https://jekyllrb.com/)
Theme - [NexT.Muse](https://github.com/simpleyyt/jekyll-theme-next) |
| Readable Markdown | ## κ°μ
μ μλ‘ μμ μ£Όλ‘ λ€λ£¨λ μ€μν [μλ‘ μ ν¨μ](https://en.wikipedia.org/wiki/Arithmetic_function)λ‘λ μ½μ ν¨μ \$\\sigma\_k (n)\$, μ€μΌλ¬ νΌ ν¨μ \$\\phi (n)\$, λ«ΌλΉμ°μ€ ν¨μ \$\\mu (n)\$ λ±μ΄ μλ€. μ΄λ¬ν ν¨μμ νλ¬Έμ μ€μλλ μ΄λ£¨ λ§ν μ μμΌλ©°, μ»΄ν¨ν°κ³Όνμ PS λΆμΌμλ μ’
μ’
λ±μ₯ν μ λλ‘ λ€μνκ² νμ©λλ€.
λ³Έ κΈμ μλ‘ μ ν¨μμ λνμΈ μ½μ ν¨μ \$\\sigma (n)\$μ κ΅¬κ° ν©μ ν¨μ¨μ μΌλ‘ κ³μ°νλ μκ³ λ¦¬μ¦μ μμ νλ€. ν¨μμ ν©μ κΈ°νμ μΌλ‘ ν΄μν ν, μ΄λ₯Ό Stern-Brocot Tree μλ£κ΅¬μ‘°λ‘ κ³μ°νλ€. μ΄ν, μ΄ μκ³ λ¦¬μ¦μ μκ° λ³΅μ‘λκ° \$\\tilde{O} \\left( N^{1/3} \\right)\$λ‘ μμ£Ό ν¨μ¨μ μμ 보μΈλ€.
## λ¬Έμ μ κΈ°
## μ½μ ν¨μμ ν© λ¬Έμ
μμ μ μ \$n\$μ λνμ¬, \$n\$μ λͺ¨λ μμ μ½μμ \$k\$μ κ³±μ ν©μ μκ°νμ. μ΄κ²μ΄ [μ½μ ν¨μ](https://en.wikipedia.org/wiki/Divisor_function) \$\\sigma\_k (n)\$μ μ μμ΄λ€.
> \\\[\\sigma\_k (n) := \\sum\_{ d \| n } d^k\\\]
μ΄ κΈμμλ \$k = 1\$μΈ μκ·Έλ§ ν¨μ \$\\sigma (n) := \\sigma\_1 (n)\$μ λνμ¬ μ£Όλ‘ λ€λ£¬λ€. μ΄ κ°μ \$n\$μ μ½μμ ν©μ λνλΈλ€.
μ΄μ , μ μ \$N\$μ΄ μ£Όμ΄μ‘μ λ, 1λΆν° \$N\$κΉμ§ μκ·Έλ§ ν¨μ«κ°μ ν© \$ \\displaystyle \\sum\_{k=1}^{N} \\sigma(k) \$μ ꡬνλ λ¬Έμ λ₯Ό μκ°νμ.
## μ μλ‘ μ μ κ·Ό
\$\\sigma(1) + \\cdots + \\sigma(N)\$μ κ°μ λ€μ 쑰건μ λ§μ‘±νλ μμ μ μ μ \$(n, d)\$μ κ°μμ κ°λ€.
> 1. \$d\$λ \$n\$μ μ½μ
> 2. \$1 \\le d \\le n \\le N\$
μ΄λ μκ·Έλ§ ν¨μμ μ μλ₯Ό μκ°ν λ, \$\\sigma(k)\$μ κ°μ \$n = k\$μΈ \$(n, d)\$μ κ°μμ κ°μΌλ―λ‘ μλͺ
νλ€.
μ΄μ , \$d\$μ κ°μ κ³ μ ν ν, μμ 쑰건μ λ§μ‘±νλ \$n\$μ κ°μλ₯Ό μΈμ. \$n\$μ \$N\$ μ΄νμΈ \$d\$μ λ°°μλΌμΌ νλ―λ‘, μ΄ \$ \\displaystyle \\left\\lfloor \\frac{ N }{ d } \\right\\rfloor \$κ°λ§νΌ μ‘΄μ¬νλ€.
\\\[\\sum \_{k=1}^{N} \\sigma(k) = \\sum \_{d=1}^{N} \\left\\lfloor \\frac{ N }{ d } \\right\\rfloor\\\]
μ΄λ λ€λ₯΄κ² ν΄μνλ©΄, \$y = \\frac{N}{x}\$ κ·Έλν μλμ μλ μμ μ μ μ \$(x, y)\$μ κ°μλ₯Ό μΈλ κ²κ³Ό κ°λ€. 곑μ \$xy = N\$μ μ§μ \$x = y\$μ λνμ¬ λμΉμ΄λ©°, μ΄ λμ κ΅μ μ \$\\left( \\sqrt{N}, \\sqrt{N} \\right)\$μ΄λ―λ‘, μ΅μ’
μ μΌλ‘ μλμ μμ μ»μ μ μλ€.
\\\[\\sum \_{d=1}^{N} \\left\\lfloor \\frac{ N }{ d } \\right\\rfloor = 2 \\sum \_{x=1}^{ \\left\\lfloor \\sqrt{N} \\right\\rfloor } \\left\\lfloor \\frac{ N }{ x } \\right\\rfloor - { \\left\\lfloor \\sqrt{N} \\right\\rfloor }^2\\\]
μ°λ¦¬λ μκ·Έλ§ ν¨μ \$\\sigma(n)\$μ κ°μ μ΄λ»κ² κ³μ°νλμ§ μμ§ μμλ, μκ·Έλ§ ν¨μμ ν©μ \$O \\left( \\sqrt{N} \\right)\$λ§μ μ½κ² κ³μ°ν μ μκ² λμλ€.
κ·Έλ¬λ \$N\$μ΄ \$10^{18}\$-scaleλ‘ μμ£Ό ν° μλΌλ©΄, μ°λ¦¬λ μ΄λ³΄λ€λ λμ± ν¨μ¨μ μΈ λ°©λ²μ μ°ΎμμΌ νλ€.
## Stern-Brocot Tree
ν¨μ¨μ μΈ μκ³ λ¦¬μ¦μ ꡬμνκΈ° μ μ, ν리 μμ΄κ³Ό Stern-Brocot Tree μλ£κ΅¬μ‘°μ λνμ¬ λ¨Όμ μμ보μ.
## Farey Sequence
Stern-Brocot Treeμ λνμ¬ λ
ΌνκΈ° μ μ, λ¨Όμ [ν리 μμ΄](https://en.wikipedia.org/wiki/Farey_sequence)μ μ μλ₯Ό μκ°νλ€. \$n\$λ²μ§Έ ν리 μμ΄ \$F\_n\$λ λ€μμ λ§μ‘±νλ λͺ¨λ κΈ°μ½λΆμ \$ \\displaystyle \\frac{a}{b} \$λ₯Ό μ€λ¦μ°¨μμΌλ‘ λμ΄ν μμ΄μ΄λ€.
> 1. \$0 \\le b \\le a \\le n\$
> 2. \$\\gcd (a, b) = 1\$
μλ₯Ό λ€μ΄, λͺλͺμ \$n\$μ λνμ¬ ν리 μμ΄ \$F\_n\$μ λμ΄νλ©΄ μλμ κ°λ€.
> \\\[F \_1 = \\left\\{ \\frac{0}{1}, \\frac{1}{1} \\right\\}\\\] \\\[F \_2 = \\left\\{ \\frac{0}{1}, \\frac{1}{2}, \\frac{1}{1} \\right\\}\\\] \\\[F \_5 = \\left\\{ \\frac{0}{1}, \\frac{1}{5}, \\frac{1}{4}, \\frac{1}{3}, \\frac{2}{5}, \\frac{1}{2}, \\frac{3}{5}, \\frac{2}{3}, \\frac{3}{4}, \\frac{4}{5}, \\frac{1}{1} \\right\\}\\\]
μ¬κΈ°μ, ν리 μμ΄ \$F\_n\$μμ μΈμ ν λ μ 리μλ₯Ό βμ°¨μ \$n\$μμ ν리 μ΄μνλ€βλΌκ³ νλ€. ν리 μ΄μμ κ΄ν μ€μν μ 리λ₯Ό νλ μκ°νλ€.
> μ°¨μμ μκ΄μμ΄, ν리 μ΄μν λ μ 리μ \$ \\displaystyle \\frac{a}{b} \> \\frac{c}{d} \$λ \$ad - bc = 1\$μ λ§μ‘±νλ€.
μ΄ μ 리λ μλμ μμ ν Stern-Brocot Treeμ κ΄ν μ 리μ κΈ°λ°μ΄ λλ€.
## Stern-Brocot Tree
ν리 μμ΄ \$F\_n\$μ νμ₯νμ¬, κ° μ 리μμ μμκΉμ§ λ±μ₯νλ μμ΄μ μκ°νμ. νΈμμ, \$ \\displaystyle \\frac{1}{0} = + \\infty \$λ‘ μκ°νλ©΄, μ΄ μμ΄μ \$ \\displaystyle \\frac{0}{1} = 0 \$ μ΄μ \$ \\displaystyle \\frac{1}{0} = + \\infty \$ μ΄νμΈ κΈ°μ½λΆμλ₯Ό μ λμ΄ν κ²μ΄λ€.
μ€μ λ‘, \$0\$ μ΄μμ λͺ¨λ μ 리μλ μΆ©λΆν ν° \$n\$μ λνμ¬ νμ₯λ ν리 μμ΄ \$Fβ \_n\$μ μ ννκ² ν λ² λ±μ₯ν¨μ μ¦λͺ
ν μ μλ€. μ΄μ , κΉμ΄ \$n\$μ ν΄λΉνλ μΈ΅μ νμ₯λ ν리 μμ΄ \$Fβ \_n\$μ μ μ΄, μλ κ·Έλ¦Όκ³Ό κ°μ μ΄μ§ νΈλ¦¬λ₯Ό μκ°νμ.
[](https://youngyojun.github.io/assets/images/posts/2022-02-18-sigma-sum-stern-brocot/SternBrocotTree.png)
**κ·Έλ¦Ό 1: SternβBrocot Tree**
νμ₯λ ν리 μμ΄ \$F' \_1\$λΆν° \$F' \_4\$κΉμ§ νμ©νμ¬ κΉμ΄ 4μ Stern-Brocot Treeλ₯Ό λ§λ€ μ μλ€.
μ΄ νΈλ¦¬λ (1) **μμ μ΄μ§ κ²μ νΈλ¦¬**μ΄λ©°, (2) **λͺ¨λ μμ μ 리μκ° μ ννκ² ν λ²μ© λ±μ₯**νλ€λ κ°λ ₯ν μ±μ§μ κ°μ§λ€. λν, νΈλ¦¬ κ·Έ μμ²΄λ‘ μ 리μμ μμ°μ κ°μ μΌλμΌ λμμ μ 보μ¬μ€λ€.
μ΄λ¬ν μμ μ΄μ§ κ²μ νΈλ¦¬λ₯Ό [Stern-Brocot Tree](https://en.wikipedia.org/wiki/Stern%E2%80%93Brocot_tree)λΌκ³ λΆλ₯Έλ€.
## μ 리μ μ΄λΆνμ
μκ³ λ¦¬μ¦ λΆμΌμμ Stern-Brocot Treeλ μ 리μλ₯Ό λμμΌλ‘ μ΄λΆνμμ ν μ μκ² λμλ€λ μ μμ κ·Έ μλ―Έκ° κΉλ€.
λ μ 리μ \$ \\displaystyle \\frac{a}{b} \< \\frac{c}{d} \$μ λνμ¬, \$\\displaystyle \\frac{a}{b}\$ μ΄κ³Ό \$\\displaystyle \\frac{c}{d}\$ λ―Έλ§μ λͺ¨λ μ 리μλ₯Ό λ΄κ³ μλ Stern-Brocot Subtreeμ λ£¨νΈ μ μ μ \$\\displaystyle \\frac{a+c}{b+d}\$μ΄λ€.
μ΄λ₯Ό κ·Έλλ‘ νμ©νλ©΄, λ€μκ³Ό κ°μ μ΄λΆνμ μκ³ λ¦¬μ¦μ μκ°ν μ μλ€.
> 1. \$ \\displaystyle s := \\frac{a}{b} = \\frac{0}{1} \$, \$ \\displaystyle e := \\frac{c}{d} = \\frac{1}{0} \$μΌλ‘ μ€μ νλ€. μ΄μ , κ° μ€ν
λ§λ€ \$s\$ μ΄κ³Ό \$e\$ λ―Έλ§μΈ μ 리μμ λνμ¬ μ΄λΆνμμ μννλ€.
> 2. μ€κ°κ° \$ \\displaystyle m := \\frac{ a+c }{ b+d } \$μ μ‘μ.
> 1. λ§μ½, \$m\$μ΄ μ°Ύκ³ μ νλ μ 리μλΌλ©΄, νμμ λ©μΆλ€.
> 2. μλλΌλ©΄, μ°Ύκ³ μ νλ μ 리μμ \$m\$μ λν λμλΉκ΅λ₯Ό μννλ€.
> 3. \$(s, e)\$λ₯Ό \$(s, m)\$ νΉμ \$(m, e)\$λ‘ λμ
ν ν, μμ κ³Όμ μ λ°λ³΅νλ€.
μ΄λ¬ν μ΄λΆνμ κ³Όμ μ ν΅νμ¬ μ΅μ’
μ μΌλ‘ κΈ°μ½λΆμ \$ \\displaystyle \\frac{x}{y} \$λ₯Ό μ»μλ€λ©΄, νμ νμλ Stern-Brocot Treeμμ μ μ \$ \\displaystyle \\frac{x}{y} \$μ κΉμ΄μ κ°μΌλ―λ‘ \$O(x+y)\$μ΄λ€.
κ³Όμ 2.λ Stern-Brocot Treeμ μ μ μμ ν μͺ½ λ°©ν₯μΌλ‘ λ΄λ €κ°λ κ²μ λνλΈλ€. μ¬κΈ°μ, μ°μμΌλ‘ λͺ λ²κΉμ§ κ°μ λ°©ν₯μΌλ‘ λ΄λ €κ°λμ§λ₯Ό μμλΌ μ μλ€λ©΄ νμ νμλ₯Ό μ€μΌ μ μλ€. μλ₯Ό λ€μ΄, μ€κ°κ° \$m\$λ³΄λ€ μμ μͺ½μΌλ‘ νμμ μ΄μ΄λκ°μΌ νλ€λ©΄, \$e\$ κ°μ \$ \\displaystyle \\frac{ ta + c }{ tb + d } \$ κΌ΄λ‘ μ νν μ μλ€. μ΄κ²μ΄ κ°λ₯ν μ΅λ μ μ \$t\$λ₯Ό μ΄λΆνμμΌλ‘ μ°ΎμΌλ©΄, μ 체 νμ νμλ₯Ό \$O(x+y)\$μμ \$O \\left( x + \\lg y \\right)\$λ‘ ν¬κ² κ°μ ν μ μλ€.
## κΈ°νμ μ κ·Ό
λ€μ μλμ λ¬Έμ λ‘ λμμ€μ. μ°λ¦¬λ μλμ κ·Έλ¦Όκ³Ό κ°μ΄ \$ \\displaystyle y = \\frac{N}{x} \$ 곑μ μλμ νμ μμμ μ‘΄μ¬νλ μμ μ μ μ \$(x, y)\$μ μλ₯Ό μΈμ΄μΌ νλ€.
[](https://youngyojun.github.io/assets/images/posts/2022-02-18-sigma-sum-stern-brocot/1.png)
**κ·Έλ¦Ό 2: \$xy = 20\$ κ·Έλνμ νμ μμ**
\$N = 20\$μ΄λΌλ©΄ μ νμ μμ λ΄λΆμ μ μ μ μ κ°μλ₯Ό μΈμ΄μΌ νλ€.
μ΄ κ·Έλνμμ κΈ°μΈκΈ°κ° \$-1\$μΈ μ μ μ κΈμ. μλμ κ·Έλ¦Όμ μ μ \$G\$, \$x\$ μΆκ³Ό \$y\$ μΆκ³Όμ κ΅μ \$P \_x\$, \$P \_y\$μ λνλ΄μλ€.
[](https://youngyojun.github.io/assets/images/posts/2022-02-18-sigma-sum-stern-brocot/2.png)
**κ·Έλ¦Ό 3: \$xy = 20\$ κ·Έλνμ κΈ°μΈκΈ° \$-1\$μ μ μ **
μ μ \$G\$μ μ€μν κ΅μ λ κ° \$P \_x\$, \$P \_y\$λ₯Ό λνλ΄μλ€. μ μ μλ μμμ μ μ μ μ κ°μλ μ½κ² μ
μ μλ€.
μ¬κΈ°μ μμ΄λμ΄λ μ΄λ¬νλ€. 곑μ μλμ μ μ μ μ κ°μλ₯Ό μΈλ κ²μ μ΄λ ΅μ§λ§, μ§μ μλμ μ μ μ μ μλ μ¬μΉμ°μ°μ μ΄μ©νμ¬ μμ£Ό μ½κ² μ
μ μλ€.
μ°λ¦¬λ λ¨μ μμμ λνμ¬ μ λΉν κΈ°μΈκΈ°μ μ μ μ κ·Έμ΄ μ μ κ°μλ₯Ό μΈλ μμ
μ μ¬κ·μ μΌλ‘ λ°λ³΅νκ³ μ νλ€. μ μ μ μ κ°μλ μ ννλ―λ‘, μ μ μ κΈ°μΈκΈ°λ₯Ό μ μ€μ νμλ€λ©΄, μ΄λ¬ν μμ
μ μ ν μκ° μμ μ’
λ£ν κ²μ΄λ€.
νΈμλ₯Ό μνμ¬, **κ·Έλ¦Ό 4**μ κ°μ μμ λ΄λΆμ μ μ μ μ κ°μλ₯Ό \$\\displaystyle f \\left( x \_0, y \_0, \\frac{a}{b}, \\frac{c}{d} \\right)\$λ‘ λνλ΄μ. μ΄μ λν μλ°ν μ μλ λ€μκ³Ό κ°λ€.
> μμ΄ μλ μ μ \$x \_0\$, \$y \_0\$κ³Ό ν리 μ΄μν λ κΈ°μ½λΆμ \$\\displaystyle \\frac{a}{b}\$, \$\\displaystyle \\frac{c}{d}\$μ λνμ¬,
>
> 1. μ \$P \\left( x \_0, y \_0 \\right)\$μ μ‘κ³
> 2. μ \$P\$λ‘λΆν° κ°κ° κΈ°μΈκΈ° \$\\displaystyle - \\frac{a}{b}\$, \$\\displaystyle - \\frac{c}{d}\$μ μ μ μ κ·Έμ΄ κ΅μ \$Q\$, \$R\$λ₯Ό μ‘μμ λ
> 3. μ§μ κ³Ό 곑μ μΌλ‘ λ«ν μΌκ° μμ \$PQR\$ λ΄λΆμ μ μ μ μ κ°μλ₯Ό \$\\displaystyle f \\left( x \_0, y \_0, \\frac{a}{b}, \\frac{c}{d} \\right)\$λ‘ μ μνλ€.
> 4. μΈμκ° μκΈ°ν 쑰건μ λ§μ‘±νμ§ μμΌλ©΄, νΈμμ \$\\displaystyle f \\left( x \_0, y \_0, \\frac{a}{b}, \\frac{c}{d} \\right) = 0\$μΌλ‘ μ μνλ€.
[](https://youngyojun.github.io/assets/images/posts/2022-02-18-sigma-sum-stern-brocot/3.png)
**κ·Έλ¦Ό 4: μ \$P\$, \$Q\$, \$R\$κ³Ό νμ μΌκ° μμ**
\$\\displaystyle f \\left( x \_0, y \_0, \\frac{a}{b}, \\frac{c}{d} \\right)\$μ μ μμμ μ¬μ©λλ μΈ μ μ λνλ΄μλ€.
μ°λ¦¬λ κ²°κ΅ \$\\displaystyle f \\left( x \_0, y \_0, \\frac{a}{b}, \\frac{c}{d} \\right)\$κ° 0μ΄ λ λκΉμ§ μ¬κ·μ μΌλ‘ νμμ μ΄μ΄λκ°μΌ νλ€. λ°λΌμ, μ΄ ν¨μ«κ°μ κ³μ°ν μ μμ΄μΌ νλ€. μ΄λ₯Ό μ΄λ»κ² κ³μ°ν μ μμκΉ?
**κ·Έλ¦Ό 4**μ λ μ μ μ κ°κ° μλ‘μ΄ μΆμΌλ‘ μ‘κ³ , μ \$P\$λ₯Ό μμ μΌλ‘ μκ°ν μλ‘μ΄ μ’νκ³ \$u-v\$λ₯Ό μκ°νμ. \$u\$ μΆμ΄ μ§μ \$PR\$, \$v\$ μΆμ΄ μ§μ \$PQ\$μ΄λ€. μ΄ κ²½μ° νμ μμμ λ€μκ³Ό κ°μ΄ λ³νλλ€.
[](https://youngyojun.github.io/assets/images/posts/2022-02-18-sigma-sum-stern-brocot/4.png)
**κ·Έλ¦Ό 5: λ³νλ μλ‘μ΄ μμ**
λλμ΄ μ°λ¦¬λ μ¬κ·μ μΌλ‘ μ μ μ μ κ°μλ₯Ό μ
μ μκ² λμλ€\!
## μκ° λ³΅μ‘λ
μ¬κ·μ μΌλ‘ λ³νλ μ μ μ κΈ°μΈκΈ°λ Stern-Brocot Treeμμ κ²½λ‘λ₯Ό λ°λΌ μλλ‘ λ΄λ €κ°λ κ²κ³Ό κ°μΌλ―λ‘, μκ° λ³΅μ‘λλ₯Ό μλμ κ°μ΄ μΈ μ μλ€.
\\\[O \\left( \\sum \_{ ad - bc = 1 } I \\left\[ \\sqrt{ \\frac{N}{ c/d } } - \\sqrt{ \\frac{N}{ a/b } } \\ge b + d \\right\] \\right)\\\] \\\[= O \\left( \\sum \_{ ad - bc = 1 } I \\left\[ \\frac{ \\sqrt{bc + 1} - \\sqrt{bc} }{ \\sqrt{ac} } \\ge \\frac{ b + d }{ \\sqrt{N} } \\right\] \\right)\\\] \\\[= O \\left( \\sum \_{ ad - bc = 1} I \\left\[ \\frac{1}{ \\sqrt{ab} c } \\ge \\frac{b+d}{\\sqrt{N}} \\right\] \\right) = O \\left( \\sum \_{ad - bc = 1} I \\left\[ ab c^2 \\left( b + d \\right)^2 \\ge N \\right\] \\right)\\\]
λ§μ§λ§ μ€μμλ \$ \\displaystyle \\sqrt{x+1} - \\sqrt{x} = O \\left( \\frac{1}{ \\sqrt{x} } \\right) \$κ° μ¬μ©λμλ€.
μ΄μ , \$t = bc\$ μΉνμ μ μ©νλ©΄,
\\\[O \\left( \\sum \_{t} \\sum \_{ b \| t} \\sum \_{ a \| (t+1) } I \\left\[ \\frac{t^4}{ab} + t^3 + ab t^2 \\ge N \\right\] \\right)\\\] \\\[= O \\left( \\sum \_{t = 1}^{N^{1/3}} \\sigma(t) \\sigma(t+1) \\right) = O \\left( \\sum \_{t=1}^{N^{1/3}} \\sigma^2 (t) \\right)\\\]
μλ°ν μ¦λͺ
μ΄λ μ μ κ°λ μλ΅νμλ€.
μ΄μ , λ€μμ μ μλ €μ§ μ 리λ₯Ό μ μ©νμ.
> \\\[\\sum \_{k=1}^{N} \\sigma^2 (k) = \\Theta \\left( N \\lg^3 N \\right)\\\]
μ¦, μμ ν μκ³ λ¦¬μ¦μ μκ° λ³΅μ‘λλ \$ \\displaystyle O \\left( N^{ \\frac{1}{3} } \\lg^3 N \\right) = \\tilde{O}\\left( N^{ \\frac{1}{3} } \\right) \$ μμ μ μ μλ€.
## κ²°λ‘
μλ‘ μ ν¨μλ μ μλ‘ λΏλ§ μλλΌ μ»΄ν¨ν°κ³Όν, μκ³ λ¦¬μ¦, PS λΆμΌμλ μ¬μ©λ μ λλ‘ μ€μνλ©° κ·Έ νμ΄ μμ£Ό λλ€.
μ°λ¦¬λ λνμ μΈ μλ‘ μ ν¨μ \$\\sigma (n)\$μ κ΅¬κ° ν© \$ \\displaystyle \\sum \_{k=1}^{N} \\sigma(k) \$μ ν¨μ¨μ μΌλ‘ κ³μ°νλ μκ³ λ¦¬μ¦μ λνμ¬ μμ보μλ€.
μΌλ°μ μΈ μ μ κ°λ‘λ \$ \\displaystyle O \\left( \\sqrt{N} \\right) \$κΉμ§ μκ° λ³΅μ‘λλ₯Ό μ€μΌ μ μμλ€. κ·Έλ¬λ, \$N\$μ΄ μμ£Ό ν° μλΌλ©΄ μ΄ λ°©λ²λ μμ§μ λ리λ€.
μ°λ¦¬λ \$ \\displaystyle y = \\frac{N}{x} \$ κ·Έλνμ ꡬνκ³ μ νλ κ°κ³Όμ κ΄κ³λ₯Ό μμλ΄κ³ , κ·Έλνμ λ³Όλ‘μ±μ΄λΌλ κΈ°νμ νΉμ±κ³Ό Stern-Brocot Tree μλ£κ΅¬μ‘°λ₯Ό νμ©νμ¬, μ¬κ·μ μΌλ‘ κ°μ κ³μ°νλ μλ‘μ΄ μκ³ λ¦¬μ¦μ μ‘°μ¬νμλ€.
λν, μ΄ μκ³ λ¦¬μ¦μ μκ° λ³΅μ‘λκ° \$ \\displaystyle \\tilde{O} \\left( N^{1/3} \\right) \$λ‘ μμ£Ό ν¨μ¨μ μμ λ°νλ€.
μ΄λ¬ν μκ³ λ¦¬μ¦μ μμ΄λμ΄λ λ€μν λ³Όλ‘ ν¨μμ λνμ¬ μ λͺ©μν¬ μ μμΌλ©°, κ·Έ μμ©μ±μ΄ λλ€. λ€μ κΈμλ \$\\sigma (n)\$ μΈμ λ€λ₯Έ μλ‘ μ ν¨μμ κ΅¬κ° ν©μ ν¨μ¨μ μΌλ‘ κ³μ°νλ λ°©λ²μ λνμ¬ μμλ³Έλ€. |
| Shard | 143 (laksa) |
| Root Hash | 2566890010099092343 |
| Unparsed URL | io,github!youngyojun,/secmem/2022/02/18/sigma-sum-stern-brocot/ s443 |