一些定義
數論函式:定義域在正整數的函式
積性函式:\(\forall a\perp b,f(ab)=f(a)\times f(b)\)
完全積性函式:\(\forall a,b,f(ab)=f(a)\times f(b)\)
\(\phi(i)\)表示\(1-i\)中與\(i\)互質的數的個數
引理:\(if\ a\perp m,\ \ a^\equiv 1\ \ (mod\ \ m)\)
\]\[\sigma _k(n)=\sum_d^k
\]\(\sigma_0\)表示因子個數
\(\sigma_1\)表示因子和
積性函式
\[f*g=h
\]\[h(z)=\sum_ f(x)*g(y)
\]有交換律和結合律
如果\(f,g\)都是積性函式,\(h\)是積性函式
給定\(f,g\),求卷積前n項的做法-->暴力\(o(n\ ln\ n)\)
\[n=p_1^\times p_2^\times p_3^\times .. \times p_m^
\]\[if\ squarefree\ \mu(n)=(-1)^m$$(就是說每一項的係數都是一次)
$$otherwise\ \mu(n)=0\]
\[\mu(n)=\mu(p_1^)\times \mu(p_2^)\times ...\times\mu(p_m^)
\]積性函式,但不是完全積性函式
\[\sum_ \mu(d)=[n=1]$$可改寫為$$u*1=e
\]證明:
\[n=p_1^\times p_2^\times p_3^\times .. \times p_m^
\]\[n_0=p_1\times p_2\times p_3\times .. \times p_m
\]\[\sum_\mu(d)=\sum_\mu(d)
\]當\(p_1\perp d\) ,$$\mu(dp_1)=\mu(d)\times\mu(p_1)=-\mu(d)$$
\[\sum_\mu(d)=\sum_\mu(d)=\sum_}(\mu(d)+\mu(dp_1))=0
\]線性篩法
void linear_shaker(int n)
for (int j = 1; j <= tot; j++)
}}
\[g=f*1
\]如果知道\(f,1\)直接求就行了啊
但是如果只知道\(g,f\)呢
反演!!!
\[g=f*1
\]\[g*\mu=f*1*\mu
\]\[g*\mu=f*e
\]就是說
\[g(m)=\sum_ f(d)\leftrightarrow f(m)=\sum_ g(d)\times \mu(k)
\]int mu(int n)
^n\prod_\frac
\]預處理\(p(x)=\prod(x-x_i)\)
\(n^2\)求出\(f(x)\)
素數及一些篩法
素數就是只有1和它本身兩個因數 int prime int x 從2開始,2是第乙個素數,不標記,然後把2的倍數都標記為合數,再從3開始,依次到n。時間複雜度好像是o n log n log n 證明過程不大懂 int flag maxn prime maxn int tot,void prime ...
數論 多種素數判斷法及素數篩法
水了一篇啊.眾所周知,大於等於 2 的僅含有 1 和自身這兩個因子的正整數被稱作素數 故只要判斷在 2,n 1 範圍內是否存在其它因子,就可以判斷 n 是否為素數了 無腦判斷法直接從 2 for到 n 1 稍微優化下可以縮減到 2,frac n 2 但這個方法時間複雜度為 o n 可以發現,如果某個...
關於數論的一些東西
數論的題大概有幾類,積性函式 同餘方程 概率 組合數學 其他一些什麼東西和數論攪在一起 積性函式的題一般都要推公式,反演,線性篩,有時要遞迴處理子問題 杜教篩 應用某個函式的特殊性質 同餘方程的問題有方程解個數和求解等東西,有的在指數上又變一下,然後就crt,excrt,原根,bsgs,miller...