2018.6清北学堂day2下午笔记(MR)(CRT)(数论分块)

Miller Rabin

直接去看Miller-Rabin笔记吧QwQ

中国剩余定理

中国剩余定理常用来求解同余方程组,形如

x a i ( mod m ) i

的方程组

其中,我们定义

M = m i

然后令
M i = M m i

定义
t i M i m o d   m i

则最终的解就是

a n s = i M i t i a i

然后CRT拓展的话…

直接看CRT的学习笔记吧

数论分块

i = 1 n n i

我们考虑对于 n i 的取值一共有 n 而 每一个取值对应的区间又是连续的

所以,我们考虑对于每一种取值x,就可以枚举左边界,则右边界为 n / ( n / l )
对应的下取整的值就是 n / l

for (int i=1,j;j<=n;i=j+1)
{
    j=(n/(n/l));
    ans+=(j-i+1)*(n/l);
}

至于这个j的求法
这里写图片描述

这样解决就可以

一道例题:

bzoj1257

余数求和

给定一个n一个k,求

i = 1 n k   m o d   i

其中 n , k 1000000000


进入函数部分

欧拉函数 ϕ ( i ) 表示1`i中有几个与 i 互质的数

考虑如何计算 ϕ ( i )
ϕ ( i ) 是积性函数,可以用线性筛求

void primee(int n)
{
    check[1]=1;
    for (int i=2;i<=n;i++)
    {
        if (!check[i]) prime[++tot]=i,phi[i]=i-1;
        for (int j=1;j<=tot;j++)
        {
            if (i*prime[j]>n) break;
            check[i*prime[j]]=1;
            if (i%prime[j]==0) 
            {
              phi[i*prime[j]]=phi[i]*prime[j];  
              break;
            }
            else
            {
                phi[i*prime[j]]=phi[i]*(prime[j]-1)
            }
        }
    }
}


一个有趣的结论:

d | n ϕ ( d )   =   n



欧拉定理:
设n为正整数,a为与n互素的整数则

a ϕ ( n ) 1 ( mod n )

莫比乌斯函数

μ ( d ) = { 1 , n = 1 ( 1 ) k , n = p 1 p 2 p k , p i 0 , o t h e r w i s e

所以,当n有平方因子的时候, μ ( n ) = 0
因为莫比乌斯函数是积性函数,所以可以线性筛

void primee(int n)
{
    check[1]=1;
    for (int i=2;i<=n;i++)
    {
        if (!check[i]) prime[++tot]=i,phi[i]=i-1;
        for (int j=1;j<=tot;j++)
        {
            if (i*prime[j]>n) break;
            check[i*prime[j]]=1;
            if (i%prime[j]==0) 
            {
              phi[i*prime[j]]=phi[i]*prime[j];
              mu[k]=0;  
              break;
            }
            else
            {
                phi[i*prime[j]]=phi[i]*(prime[j]-1);
                mu[k]=-mu[i];
            }
        }
    }
}

QwQ中间讲了一些 直接去看这部分的学习笔记吧

好像wei la
还是直接看莫比乌斯反演的学习笔记吧

然后这里引入数论8题:
…..

猜你喜欢

转载自blog.csdn.net/y752742355/article/details/80609776