積性函式的性質及證明 + 線性篩
引言
在數論問題中,積性函式有著廣泛的應用。
如在莫比烏斯反演問題中,函式變換之後如何快速維護字首和往往是最重要也是最難的一步。如果維護的函式具有積性,那就可以嘗試利用線性篩在
本文的大部分相關性質及公式來自:
博主將試著證明其中的性質公式,嚴謹性可能欠缺,其目的主要是幫助記憶和理解。
因水平有限 若有錯誤之處還望指出qwq~
積性函式的定義和性質
定義: 對於一個定義域為
若對於任意整數
性質:
(1)對於任意積性函式
證明:因
因
證畢。
(2)對於一個大於
若
證明:由積性和完全積性的定義易得。
尤拉函式φ
定義:對於正整數
定義式:若
性質:
(1)尤拉函式為積性函式,而不是完全積性函式。
證明:設兩個互質的正整數
則:
因
故推出:
積性函式性質得證。
而完全積性由上證明可見,
(2)假設存在一個素數
引言
在數論問題中,積性函式有著廣泛的應用。
如在莫比烏斯反演問題中,函式變換之後如何快速維護字首和往往是最重要也是最難的一步。如果維護的函式具有積性,那就可以嘗試利用線性篩在O(n)的時限內完成預處理,從而達到優化複雜度的神奇作用。
本文的大部分相關性質
#include<bits/stdc++.h>
using namespace std;
#define debug puts("YES");
#define rep(x,y,z) for(int (x)=(y);(x)<(z);(x)++)
#def
描述
Xiaoming has just come up with a new way for encryption, by calculating the key from a publicly viewable number in the following way:
Let t 前置知識
線性篩
線性篩可以在嚴格$O(n)$的時間內篩出積性函式的值,
它有常見的套路
假設$n = p_1^{a_1} p_2^{a_2} \dots p_k^{a_k}$
如果我們能快速得出$f(p_i)$和$f(p_i^{k+1})$的取值,那麼直接套板子就行了
在下文中如無特殊說 一些性質
積性函式:對於函式\(f(n)\),若滿足對任意互質的數字\(a,b,a*b=n\)且\(f(n)=f(a)f(b)\),那麼稱函式f為積性函式。
狄利克雷卷積:對於函式f,g,定義它們的卷積為
\((f∗g)(n)=\sum_{d|n}f(d)g(\frac{n}{d})\)。
狄利克雷卷積滿足
尤拉函式:
定義:φ(n)表示1~n中和n互素的數目
性質:
首先可以根據概念得知,當n為素數時,顯然ϕ(n)=n−1
尤拉函式是個不完全積性函式,證明過程較複雜,貼個連結趕緊跑
根據它積性函式的性質和唯一分解定理,我們就可以把任意一個φ(n)
參考資料
整除分塊:
當我們求∑ni=1f([ni])∑i=1nf([ni])的時候,如果1到n求一遍感覺太傻了,因為會有很多重複的計算,例如:n=10000時,i在[101,111]時,都有[ni]=9[ni]=9,所以我們只需要對所有數分成如上的一個 題目:https://www.lydsy.com/JudgeOnline/problem.php?id=4407
推導如這裡:https://www.cnblogs.com/clrs97/p/5191506.html
然後發現 \( F(D) \) 是一個積性函式,可以篩質數的同時篩出來;
首先,單個質
前言:
據CCH和LJH說,杜教篩似乎是一個非常套路的東西,幾乎所有的杜教篩的題目推理方式都是一模一樣的(但實測有些推理還是很噁心的)。所以複習杜教篩不需要太多時間,粗略看一遍,留下印象即可。
杜教篩其實是一種簡化運算的推理方式,它的使用條件並不僅限於積
在非數論的領域,積性函式指所有對於任何a,b都有性質f(ab)=f(a)f(b)的函式。
在數論中的積性函式:對於正整數n的一個算術函式 f(n),若f(1)=1,且當a,b互質時f(ab)=f
題意:設(題目已把f(6)的表給出),,給定n(n<=1e9),求g(n)
最主要的是求f(m),考慮到模數大於0的情況比較多,所以考慮考慮求ij mod n==0的情況。。
然後其實從題目給的表中看出對一個a來說,他0的個數和gcd(a,n)有關,其實也很容易證明,對一個數a來說
【連結】
http://acm.hdu.edu.cn/showproblem.php?pid=5728
【題意】
n是無平方因子的數
定義k=∑mi=1φ(i∗n) mod 1000000007,求K^k^k^k......%p
【思路】
先尤拉性質求出k
1. 求前n個正整數的約數之和
即 .
解:
或
需要說明的是 是一種常見的表示形式。
當 時, 顯然只有個取值,當 時, ,顯然也只有個取值。當 = k (常數) 時,i的取值區間是 ,因此可以用 複雜度求解。
code:
#inclu 題意:設f(i)為0<=x,y<=i-1且xy%i=0的(x,y)對數,g(i)為sigma f(j) [i%j==0]
給定n,求g(n),答案對2^64取模
T<=2e4,n<=1e9
思路:這題堅定了我要找一個專業數學手的決心……
x,y從[0,i-1]等價於從[1,i]
傳送門
可以很容易推到
f_r(n) = sigema (d|n) f_r-1(d)
f_0(n) = 2^(n的質因子個數)
然後就不知道怎麼辦了
這是一個積性函式的應用小技巧
看出來f_0是一個積性函式,那麼f_r也是積性函式
證明積性函式可以把表示式拆成
#include<bits/stdc++.h>
using namespace std;
#define debug puts("YES");
#define rep(x,y,z) for(int (x)=(y);(x)<(z);(x)++)
#def
今天做的一道題就是有關積性函式與狄利克雷卷積的,很懵逼。覺得有必要學一手了
一. 積性函式是什麼呢?
對於函式f,對於任意的a,b互質,都有:
f(a * b) = f(a) * f(b)
這樣的函式f就稱為積性函式,若a,b不互質也滿足上述條
J. Sum
A square-free integer is an integer which is indivisible by any square number except 11. For example, 6 = 2 \cdot 36=2⋅3 is squa
【連結】
【題意】
n是無平方因子的數
定義k=∑mi=1φ(i∗n) mod 1000000007,求K^k^k^k......%p
【思路】
先尤拉性質求出k,再用尤拉降冪,A^B=A^B%phi(C)+phi(C) (mod C)求出答案
∑(i=1~
GCD?LCM!
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 316 Accepted Submission(s): 200
O 相關推薦
積性函式的性質及證明 + 線性篩
BZOJ 3944 Sum (積性函式字首和杜教篩)
[絕對能看懂!]Deciphering Password(積性函式+線性篩+素數分解)
淺談積性函式的線性篩法
線性篩,積性函式,狄利克雷卷積,常見積性函式的篩法
【數論】線性篩與積性函式
杜教篩(整除分塊,積性函式,尤拉與莫比烏斯,狄利克雷卷積)
bzoj 4407 於神之怒加強版 —— 反演+篩積性函式
【總結】積性函式字首和(杜教篩)
Hdu1452 因子和的積性函式 以及積性函式的一些性質和舉例
hdu5528(積性函式+尤拉函式)
【hdu 5728 PowMod】【數論】【尤拉函式】【尤拉降冪遞迴取模】【尤拉積性函式】
積性函式字首和問題
【HDOJ5528】Count a * b(積性函式)
反演+積性函式--CF757E Bash Plays with Functions
HDU 5528 Count a * b (積性函式)*
(數論一)積性函式與狄利克雷卷積
2018ACM-ICPC南京賽區網路賽: J. Sum(積性函式字首和)
【hdu 5728 PowMod】【數論】【尤拉函式】【尤拉降冪遞迴取模】【尤拉積性函式】
【HDU 5382】 GCD?LCM! (數論、積性函式)