数论回顾与扩展

版权声明:未经本人允许,擅自转载,一旦发现将严肃处理,情节严重者,将追究法律责任!

序:为什么要进行回顾?因为这几天测试发现数论还不是太熟悉,

  于是今天看了看2016国家集训队论文对数论又有了新的认识,

  预计在明天或者后天给出曾经未完成的总结,以及对2016国家集训队论文的些许理解;

P1:筛法:

  线性筛:这个东西想必大家都非常熟悉,但是对于它为什么能做到O(n)的

      【因为每个数只会被自己最小的质因子筛出去】或许大家不一定了解

      于是在此给出证明:

      1.设两个数a,b【a<b且a,b为质数,且a*m==b*m'==n】

      2.a<b,m>m' 于是有两种情况:

        (1)当目前为止质数被筛出只有a,于是i枚举到m筛出n【被a筛出】

        (2)当目前为止质数被筛出a,b,又因为a*m==b*m'且a,b互质,

          于是只有a为m'的约数,于是当还没枚举到b的时候 因为m % a==0就退出了;

      3.由 2 可得n只会被最小的质因子筛去,于是可知道此算法为O(n)的

  杜教筛:这个由于要用到一些积性函数的东西,于是将此部分延后解释;

------------------------------------------------------------------------------------------------

作者写到现在才发现我写这些东西有什么用?本来就有很详细的论文,

况且给出结论不加以证明不是我的风格,于是在某些定义证明部分将贴

集训队论文,在一些,不易理解地方,作者将给出较为口语化的解释

所以本文重点在习题的解答

-----------------------------------------------------------------------------------------------

P2:积性函数:

 

2.3:计算1--n的积性函数,我们可以利用前文所讲的线性筛,利用积性函数的积性算出:

例如莫比乌斯函数:

---------------------------------------

mu[1]=1;
for (int i=2; i<=N; i++)
{
  if (!vis[i]){tot++; pri[tot]=i; mu[i]=-1;}
  for (int j=1; j<=tot&&pri[j]*i<=N; j++)
  {
    vis[i*pri[j]]=1;
    if (i%pri[j]==0) {mu[i*pri[j]]=0; break;}
    mu[i*pri[j]]=mu[i]*mu[pri[j]];
  }
}

---------------------------------------

P4:莫比乌斯反演:

 

 

 

Pn:一些题目题解:待更

 

参考文献:贾志鹏线性筛法.pdf

     国家集训队2016论文集.pdf

     ZYF数论十题.pdf

参考博客:hzwer

      

 

转载于:https://www.cnblogs.com/HQHQ/p/5819953.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值