这几天研究了之前一直困扰自己很久的莫比乌斯反演,虽然自己现在学的还不是很好,就简简单单的写一下总结吧,咦,都没学会掌握我就写总结好像很欠揍,欧拉函数现在也系统的整理一下好了

一、欧拉函数

1.定义:**在数论,对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1)。**此函数以其首名研究者欧拉命名(Euler’so totient function),它又称为Euler’s totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8互质。 从欧拉函数引伸出来在环论方面的事实和拉格朗日定理构成了欧拉定理的证明。
设n为正整数,以 φ(n)表示不超过n且与n互素的正整数的个数,称为n的欧拉函数值
φ:N→N,n→φ(n)称为欧拉函数。
2.函数内容:
通式:
其中p1, p2……pn为x的所有质因数,x是不为0的整数。

至于欧拉函数的一些性质可以见以下博客:
求逆元的博客

3.之后给出几种求欧拉函数的代码:(建议看这一篇博客)
(1)筛法求欧拉函数的代码:

//筛法欧拉函数#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
const int N=3e6+10;int euler[N];void getEuler()
{memset(euler,0,sizeof(euler));euler[1]=1;for(int i=2; i<N; i++){if(euler[i]==0){for(int j=i; j<N; j++){if(euler[j]==0)euler[j] = j;euler[j] = euler[j]/i*(i-1);}}}
}int main()
{getEuler();int n;cin>>n;cout<<euler[n]<<endl;return 0;
}

(2)求单个数的欧拉函数:

//求单个数的欧拉函数 也就是所谓的直接求#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
#define ll long long
const int N=3e6+10;ll eular(ll n)
{ll ans = n;for (int i = 2; i*i <=n; i++){if(n%i==0){ans-=ans/i;while( n % i == 0)n /= i;}}if(n>1)ans -= ans/n;return ans;
}int main()
{int n;cin>>n;cout<<eular(n)<<endl;return 0;
}

(3)线性筛求欧拉函数(同时得到欧拉函数和素数表):

//线性筛的时间复杂度为O(n)
//
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
#define ll long long
const int N=3e6+10;
bool check[N];
int phi[N];//
int prime[N];//素数
int tot;void phi_and_prime_table(int x)
{memset(check,false,sizeof(check));phi[1]=1;tot = 0;for(int i = 2; i <= x; i++){if( !check[i])//i是素数{prime[tot++] = i;phi[i] =i-1;}for(int j=0; j < tot; j++){if(i* prime[j]>x)break;check[i*prime[j]]=true;if( i % prime[j] == 0){phi[i*prime[j]]=phi[i] * prime[j];break;}else{phi[i *prime[j]]=phi[i] * (prime[j]-1);}}}
}int main()
{int n;cin>>n;phi_and_prime_table(n);cout<<phi[n]<<endl;return 0;
}

(4)分解质因数求欧拉函数:在这里不给出详细代码了

以上即欧拉函数的知识点及代码模板,接下来开始介绍莫比乌斯反演

二、莫比乌斯反演

1.定理:F(n)和f(n)是定义在非负整数集合上的两个函数,并且满足条件
则我们得到结论

其中u(d)为莫比乌斯函数,定义如下:
(1)若 d=1,那么 u(d)=1
(2)若d=p1p2p3····*pk,pi均为互异素数,则u(d)=(-1)^k
(3)其它情况下 u(d)=0

对于u(d)函数有以下常见的性质:
(1)对任意正整数n 有
(2)对任意正整数n有

2.证明:

3.线性筛选求莫比乌斯函数:

​​//线性筛求莫比乌斯反演
//
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
#define ll long long
const int N=3e6+10;
ll mob[N];
ll vis[N];
ll prime[N];//素数
ll cnt;void Mobius()
{memset(prime,0,sizeof(prime));memset(mob,0,sizeof(mob));memset(vis,0,sizeof(vis));mob[1] = 1;cnt = 0;for(ll i = 2; i <N; i++){if( !vis[i]){prime[cnt++] = i;mob[i]=-1;}for(ll j=0; j < cnt&&i*prime[j]<N; j++){vis[i*prime[j]]=1;if(i%prime[j])mob[i*prime[j]]=-mob[i];else{mob[i*prime[j]]=0;break;}}}
}int main()
{int n;Mobius();cin>>n;cout<<mob[n]<<endl;return 0;
}

嗯 先写到这,等这几天自己理解更深刻的时候就回来补充

欧拉函数和莫比乌斯反演(Mobius)相关推荐

  1. 容斥原理与欧拉函数与莫比乌斯函数,狄利克雷卷积与莫比乌斯变换,反演

    莫比乌斯函数可以看成是一种被内化了的容斥原理,许多数论上的结论定理根据容斥原理和数学归纳法可以推导出来,但是有关容斥原理的表达式的构造往往并不容易,运气不好很难找到,而莫比乌斯函数则是巧妙的把容斥原理 ...

  2. 专题·莫比乌斯函数与欧拉函数【including 整除分块,积性函数,狄利克雷卷积,欧拉函数,莫比乌斯函数,莫比乌斯反演

    初见安~又是好久没写博客了--加上CSP才炸了一波. 目录 一.整除分块 题解 二.积性函数 三.狄利克雷卷积 四.欧拉函数 五.莫比乌斯函数(mu) 六.莫比乌斯反演 一.整除分块 看个例题:洛谷P ...

  3. 欧拉函数和莫比乌斯函数

    多校赛上最近有道题目是gugufishtion Problem Description Today XianYu is too busy with his homework, but the bori ...

  4. 线性筛与欧拉函数、莫比乌斯函数

    网上关于素数筛的资料很多,这里只是给出弱鸟整理的几个线性筛和应用. 最朴素的素数筛--埃拉托斯特尼筛法(Sieve of Eratosthenes) 复杂度 Olognlogn int primes[ ...

  5. 筛表合集(素数筛 欧拉函数筛 莫比乌斯函数筛)

    [目录] 一.素数筛 1.素数判断 2.素数普通筛 3.素数线性筛 4.素数区间筛 二.欧拉函数筛 三.莫比乌斯函数筛 [素数筛] 1.直接判定质数 bool judgePrime( int num ...

  6. nssl1232-函数【数论,欧拉函数,莫比乌斯反演】

    正题 题目大意 ∑d∣nf(d)=n\sum_{d|n}f(d)=nd∣n∑​f(d)=n 对于n个aia_iai​ 求 ∑i=1nf(ai)\sum_{i=1}^nf(a_i)i=1∑n​f(ai​ ...

  7. matlab狄利克雷函数,数论入门1——莫比乌斯函数,欧拉函数,狄利克雷卷积,线性筛,莫比乌斯反演,杜教筛...

    数论入门1 一个菜鸡对数论的一点点理解... 莫比乌斯函数 定义函数$\mu(n)$为: 当n有平方因子时,$\mu(n)=0$. 当n没有平方因子时,$\mu(n)=(-1)^{\omega(n)} ...

  8. 欧拉函数+狄利克雷卷积+莫比乌斯函数+莫比乌斯反演+整除分块+杜教筛

    Powered by:NEFU AB-IN 文章目录 欧拉函数 狄利克雷卷积 莫比乌斯函数 莫比乌斯反演 P3455 [POI2007]ZAP-Queries 整除分块 P2522 [HAOI2011 ...

  9. CCPC-Wannafly Winter Camp Day3 (Div2, onsite) F 小清新数论 欧拉函数的利用 莫比乌斯反演 杜教筛

    F - 小清新数论 做法一:欧拉函数 #include<stdio.h> #include<bits/stdc++.h> using namespace std; #defin ...

最新文章

  1. Wiki1017(乘积最大)
  2. 不想跑滴滴,如何利用汽车赚钱?
  3. 如何不让你的APP在模拟器中运行。
  4. MySQL学习之——锁(行锁、表锁、页锁、乐观锁、悲观锁等)
  5. moxa串口卡Linux驱动,moxa多串口驱动下载
  6. 竹间智能:人机交互未来如何改变人类生活
  7. 红米android刷机在哪,红米手机怎么刷机 红米手机刷机教程大全
  8. SAP中会计凭证红蓝冲相关分析测试笔记
  9. Mr. Kitayuta vs. Bamboos
  10. 弘辽科技:淘宝宝贝上下架有哪些规则?该如何优化?
  11. 助力“互联网+智慧医疗“,医真云致力成为全球领先的医疗云服务提供者
  12. 【最新最详细】SQL Server 2019 安装教程{超详细 附网盘下载链接}
  13. 滴滴出行用户运营分析
  14. 不要小看 WebSocket!长连接、有状态、双向、全双工都是王炸技能
  15. 二手书市场的快速增长:多抓鱼产品分析报告
  16. IDEA中如何设置键盘快捷键可用
  17. 前沿分享|数澜科技联合创始人副总裁 江敏:基于云原生数据仓库AnalyticDB PostgreSQL的最佳实践
  18. PAT 1080. Graduate Admission (30) 模拟高考志愿录取规则
  19. dz论坛附件在服务器中的位置,Discuz! 远程附件设置图文说明
  20. 常用的文本情感分析方法及其应用

热门文章

  1. CISSP 第五章 物理和环境安全
  2. 【vultr使用流程笔记】
  3. Android美化menu的小技巧-item菜单项添加标题
  4. js重新渲染或重新加载div
  5. Python Flask Web教程020: flask模板
  6. IM即时通讯系统优势,区块链社交APP如何搭建
  7. Mac键盘不起作用?苹果电脑键盘失灵解决教程
  8. 前缀和——(1)什么是前缀和和一维前缀和
  9. JAVA-DS-排序
  10. CTFSHOW 套娃shell