數論1 1(一些函式及篩法)

2022-05-10 02:56:41 字數 1504 閱讀 5016

一些定義

數論函式:定義域在正整數的函式

積性函式:\(\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...