莫比乌斯函数及其反演学习笔记

scrapy - 美团民宿 实战练习 目录结构 items.py import scrapy # 民俗名称,地区,价格,房间类型及数量,床的数量,可住几人 class MeituanItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() title = scrapy.Field() place = scrapy.Field() price = scrapy.F... 阅读详情

莫比乌斯函数及其反演学习笔记

——by sunzz3183


定义

μ ( x ) ≡ { 1 x = 1 ( − 1 ) k x = p 1 ⋅ p 2 ⋅ ⋯ ⋅ p k 0 o t h e r w i s e \mu (x)\equiv \begin{cases} 1&x=1 \\(-1)^k&x=p_1\cdot p_2\cdot \cdots\cdot p_k \\0&otherwise \end{cases} μ(x) 1(1)k0x=1x=p1p2pkotherwise

求法

  1. 直接求
inline int mu(int x){
	if(!x)return 0;
	if(x==1)return 1;
	int sum=0;
	for(int i=2;i*i<=x;i++)
		if(!(x%i))
			if(!(x/i%i))return 0;
			else sum++;
	return sum&1?-1:1;
}
  1. 线性筛
int cnt,prime[M],phi[N],mu[N];
bool is_p[N];
void init(int n){
    phi[1]=mu[1]=1;
    for(int i=2;i<=n;i++){
        if(!is_p[i])prime[++cnt]=i,phi[i]=i-1,mu[i]=-1;
        for(int j=1;j<=cnt&&i*prime[j]<=n;j++){
            is_p[i*prime[j]]=1;
            if(!(i%prime[j])){
                phi[i*prime[j]]=phi[i]*prime[j];
                mu[i*prime[j]]=0;
                break;
            }
            phi[i*prime[j]]=phi[i]*(prime[j]-1);
            mu[i*prime[j]]=-mu[i];
        }
    }
}

(根据性质,很简单)

反演

式子 1

∑ d ∣ n μ ( d ) = [ n = 1 ] \sum_{d \mid n} \mu(d)=[n=1] dnμ(d)=[n=1]

式子 2

[ gcd ⁡ ( i , j ) = 1 ] = ∑ d ∣ gcd ⁡ ( i , j ) μ ( d ) [\operatorname{gcd}(i, j)=1]=\sum_{d \mid \gcd(i, j)} \mu(d) [gcd(i,j)=1]=dgcd(i,j)μ(d)

由式子 1 得

式子 3

∑ i = 1 n ∑ j = 1 m [ gcd ⁡ ( i , j ) = 1 ] = ∑ i = 1 n ∑ j = 1 m ∑ d ∣ g c d ( i , j ) μ ( d ) = ∑ i = 1 n ∑ d = 1 m i n ( i , m ) μ ( d ) ⌊ m i n ( i , m ) d ⌋ = ∑ d = 1 m i n ( n , m ) μ ( d ) ⌊ n d ⌋ ⌊ m d ⌋ \begin{aligned} \\&\sum\limits_{i=1}^{n} \sum\limits_{j=1}^{m}[\gcd(i,j)=1] \\&= \sum\limits_{i=1}^{n} \sum\limits_{j=1}^{m} \sum\limits_{d|gcd(i,j)} \mu (d) \\&=\sum\limits_{i=1}^{n} \sum\limits_{d=1}^{min(i,m)} \mu (d)\left \lfloor \frac{min(i,m)}{d} \right \rfloor \\&=\sum\limits_{d=1}^{min(n,m)} \mu (d)\left \lfloor \frac{n}{d} \right \rfloor \left \lfloor \frac{m}{d} \right \rfloor \end{aligned} i=1nj=1m[gcd(i,j)=1]=i=1nj=1mdgcd(i,j)μ(d)=i=1nd=1min(i,m)μ(d)dmin(i,m)=d=1min(n,m)μ(d)dndm

式子 4

例题 [POI2007]ZAP-Queries

∑ i = 1 n ∑ j = 1 m [ gcd ⁡ ( i , j ) = k ] \sum\limits_{i=1}^{n} \sum\limits_{j=1}^{m}[\gcd(i,j)=k] i=1nj=1m[gcd(i,j)=k]

我们可以转化和式子 3 一样的。

∑ i = 1 n ∑ j = 1 m [ gcd ⁡ ( i , j ) = k ] = ∑ i = 1 ⌊ n k ⌋ ∑ j = 1 ⌊ m k ⌋ [ gcd ⁡ ( i , j ) = 1 ] = ∑ i = 1 ⌊ n k ⌋ ∑ j = 1 ⌊ m k ⌋ ∑ d ∣ g c d ( i , j ) μ ( d ) = ∑ d = 1 ⌊ m i n ( n , m ) k ⌋ μ ( d ) ⌊ n d × k ⌋ ⌊ m d × k ⌋ \begin{aligned} \\&\sum\limits_{i=1}^{n} \sum\limits_{j=1}^{m}[\gcd(i,j)=k] \\&=\sum\limits_{i=1}^{\left \lfloor \frac{n}{k} \right \rfloor } \sum\limits_{j=1}^{\left \lfloor \frac{m}{k} \right \rfloor }[\gcd(i,j)=1] \\&=\sum\limits_{i=1}^{\left \lfloor \frac{n}{k} \right \rfloor } \sum\limits_{j=1}^{\left \lfloor \frac{m}{k} \right \rfloor }\sum\limits_{d|gcd(i,j)} \mu (d) \\&=\sum\limits_{d=1}^{\left \lfloor \frac{min(n,m)}{k} \right \rfloor } \mu (d)\left \lfloor \frac{n}{d\times k} \right \rfloor \left \lfloor \frac{m}{d\times k} \right \rfloor \end{aligned} i=1nj=1m[gcd(i,j)=k]=i=1knj=1km[gcd(i,j)=1]=i=1knj=1kmdgcd(i,j)μ(d)=d=1kmin(n,m)μ(d)d×knd×km

式子 5

∑ i = 1 n ∑ j = 1 m [ gcd ⁡ ( i , j ) ≤ x ] \sum\limits_{i=1}^{n} \sum\limits_{j=1}^{m}[\gcd(i,j)\leq x] i=1nj=1m[gcd(i,j)x]

转化成式子 4。

∑ i = 1 n ∑ j = 1 m [ gcd ⁡ ( i , j ) ≤ x ] = ∑ i = 1 n ∑ j = 1 m ∑ k = 1 x [ gcd ⁡ ( i , j ) = k ] = ∑ k = 1 x ∑ i = 1 n ∑ j = 1 m [ gcd ⁡ ( i , j ) = k ] = ∑ k = 1 x ∑ d = 1 ⌊ m i n ( n , m ) k ⌋ μ ( d ) ⌊ n d × k ⌋ ⌊ m d × k ⌋ \begin{aligned} \\&\sum\limits_{i=1}^{n} \sum\limits_{j=1}^{m}[\gcd(i,j)\leq x] \\&=\sum\limits_{i=1}^{n} \sum\limits_{j=1}^{m} \sum\limits_{k=1}^{x}[\gcd(i,j)=k] \\&=\sum\limits_{k=1}^{x} \sum\limits_{i=1}^{n} \sum\limits_{j=1}^{m}[\gcd(i,j)=k] \\&=\sum\limits_{k=1}^{x} \sum\limits_{d=1}^{\left \lfloor \frac{min(n,m)}{k} \right \rfloor } \mu (d)\left \lfloor \frac{n}{d\times k} \right \rfloor \left \lfloor \frac{m}{d\times k} \right \rfloor \end{aligned} i=1nj=1m[gcd(i,j)x]=i=1nj=1mk=1x[gcd(i,j)=k]=k=1xi=1nj=1m[gcd(i,j)=k]=k=1xd=1kmin(n,m)μ(d)d×knd×km

求法总结

线性筛 O ( n ) O(n) O(n) 求,然后直接求的话也会是 O ( n ) O(n) O(n),可以使用整数分块和前缀和来使时间优化到 O ( n ) O(\sqrt{n}) O(n )

提高

飞牛fnNAS搭建私有云音乐库 本文介绍了在飞牛NAS上部署Navidrome音乐服务器的完整流程。首先创建音乐存储目录并安装Navidrome应用,然后配置管理员账号、语言设置和音乐路径。接着详细说明使用"音乐标签"软件刮削音乐元数据的方法,包括获取软件、导入音乐文件和自动匹配标签。针对远程访问需求,推荐使用ZeroTier实现内网穿透,并给出注册、创建网络及设备加入的具体步骤。最后介绍移动端使用"音流"APP连接Navidrome服务器的配置方法,实现手机端音乐播放。通过这套方案,用户可以搭建专 阅读详情

相关推荐

图片处理助手|C++ 手搓离线 AI 涂鸦工坊,BiSeNet 分割 + 11 步风格化一次讲透

一条别人没做的链路:照片 → 人脸分割 → 风格化 → 贴纸画布,全离线;AI 只干最贵的活:BiSeNet 跑一次出类图,剩下的交给 11 步经典视觉算子,滑条级实时预览;细节靠传统算法堆:手绘感(模糊+阈值+噪声)、水彩感(距离变换渗色)、像素风(最近邻缩放)——没有第二张「魔法」网络,全是 OpenCV 老伙计;交互即产品:拖拽/缩放/旋转/置顶/去背/泊松融合,贴纸的手感就是体验。后续展望:风格化流水线参数化做成「风格预设」(一键切换水墨风/蜡笔风);泊松融合增加交互式中心点选择;

qq_29676069的博客 283

从0开始 莫比乌斯函数反演 学习笔记

建议先看这篇比较简略的文章(有大概了解)莫比乌斯函数_为最后的荣光的博客-CSDN博客再根据个人情况食用本篇博客首先对nnn唯一分解唯一分解唯一分解定理一篇就够了_求唯一分解式程序_JdiLfc的博客-CSDN博客唯一分解定理及其证明 - 夶 - 博客园 (cnblogs.com)np1k1p2k2pmkm其中pi为n的互异质因子∀iki为正整数(0)

young_1217的博客 696

图片处理助手|泊松融合原理 + C++ 工程实现,seamlessClone 三模式一次讲透

现象:边缘微调滑到最左(强腐蚀),点融合,程序崩溃或花屏。原因:掩码被腐蚀成全零,对全零掩码是未定义行为。解决守卫,跳过该贴纸并写日志(第五章代码)。原理一句话:内部保梯度、边界锚颜色,解一个泊松方程,接缝就没了;三模式 = 引导场的三种选法:NORMAL 全搬、MIXED 搬纹理、MONO 只搬纹理走向;工程细节决定手感:掩码膨胀留缓冲、腐蚀去白边、全零守卫、出界跳过、变换后重二值化;缓存换体验:三模式一次算完,切换零等待。

qq_29676069的博客 349

c莫比乌斯函数_算法学习笔记(36): 莫比乌斯反演

在学习了狄利克雷卷积后,莫比乌斯反演公式就是非常显然的了: 展开来写: 其实如果你掌握了狄利克雷卷积,你并不需要记忆这个公式,而且很多题目也不会直接用到它。至于莫比乌斯函数的计算,可以利用欧拉筛在 时间内筛出(和筛欧拉函数类似):int mu[MAXN]; bool isnp[MAXN]; vector<int> primes; void init(int n) { mu[1...

weixin_39585035的博客 176

莫比乌斯反演学习笔记

since 20250809

m0_73430577的博客 1519

学习笔记莫比乌斯反演

本文介绍了数论函数莫比乌斯函数及其性质,重点讲解了莫比乌斯反演公式及其应用。主要内容包括: 数论函数、加性函数和积性函数的定义 莫比乌斯函数的定义及其重要性质:∑μ(d)=[n=1] 欧拉函数莫比乌斯反演的关系 莫比乌斯反演公式及其证明 三个经典例题解析:ZAP-Queries、YY的GCD和约数个数和问题 文章通过推导演示了如何利用莫比乌斯反演解决数论问题,并给出了具体的解题思路和公式推导过程。

uhw177po的博客 999

c莫比乌斯函数_莫比乌斯函数

前言本文内容大部分来自Oier PoPoQQQ 的课件。\onedrive, baidupan,密码:6ug5\本文基本上由我学习相当于是制作的一篇学习笔记,但是将课件中的一些不完善的地方加以完善使得更容易理解,加上了部分例题的代码引子介绍莫比乌斯反演之前我们先来看一个函数根据的定义于是我们便可以通过推导出在推导的过程中我们是否发现了一些规律?莫比乌斯反演莫比乌斯反演[1]莫比乌斯反演定义其中为莫...

weixin_39950812的博客 428

莫比乌斯函数学习笔记

莫比乌斯函数学习笔记# 莫比乌斯函数学习笔记 莫比乌斯环是非常重要的 莫比乌斯函数是数论中重要内容,所以搞懂它很重要!!! 定义 设 x=∏i=1cpikix=\prod\limits_{i=1}^c p_i^{k_i}x=i=1∏c​piki​​,其中 pip_ipi​ 为质数。 μ(x)={1x=1(−1)c∏i=1cki=10max⁡i=1cki>1\mu(x)=\begin{cases} 1&x=1\\(-1)^c&\prod\limits_{i=1}^c k_i=1\\0&a

huayucaiji的博客 383

莫比乌斯反演+常见数论函数的性质+狄利克雷卷积+数论分块+杜教筛学习笔记

目录 预备知识 积性函数 狄利克雷卷积 莫比乌斯反演 莫比乌斯反演的约数形式 莫比乌斯反演的倍数形式 数论分块 习题(狄利克雷卷积+莫比乌斯反演) 杜教筛 ...

weixin_30551963的博客 320

莫比乌斯反演/线性筛/积性函数/杜教筛/min25筛 学习笔记

最近重新系统地学了下这几个知识点,以前没发现他们的联系,这次总结一下。 莫比乌斯反演入门:https://blog.csdn.net/litble/article/details/72804050 线性筛筛常见积性函数及其代码:https://blog.masterliu.net/algorithm/sieve/ 积性函数与线性筛(包括普通线性函数):https://blog...

weixin_30508241的博客 306

从CVI(C)到Pyside(python)/Qt(C++)/VS(C#)的一点吐槽

Tkinter 布局助手”,是我接触过的基于python原生的图形界面套件Tkinter来做GUI程序的最佳实践,链接是https://www.pytk.net/],在web上就可以拖拽基础控件到面板,并定义控件的回调函数,完了存盘到本机。我曾经死抱着CVI不放,没有去追逐更现代的IDE,究其原因,主要是以前没有 AI 辅助编程,很多新 IDE 摸都不敢摸,随便一个编译报错或环境配错,就会卡死我半天。所以,遇到我这样,时不时输出一个学习心得的老工程师,也应该算是一种缘分了,很罕见的哦。

qq_15084199的博客 245

EUI-NEO C++ 轻量跨平台 GUI

EUI-NEO是一个轻量级跨平台GUI框架,基于C++17开发,支持CMake和Xmake构建系统。核心特性包括:支持OpenGL渲染(默认)、模块化设计、声明式UI语法,并提供GLFW/SDL2窗口后端选项。项目结构清晰,包含核心DSL引擎、可复用组件、示例应用及可选功能模块(如键盘/串口支持)。开发者可通过简单配置快速集成,支持find_package和FetchContent方式引入。框架采用Apache 2.0许可证,部分依赖项遵循各自开源协议。文档覆盖DSL设计、状态管理、渲染管线等关键技术细节,

a111776的博客 194

MSE / Cross‑Entropy / Huber / Focal Loss深度实战|损失函数数学原理、PyTorch踩坑、项目选型与排障

深度学习训练loss不下降、震荡、精度上不去,很多时候不是网络结构问题,而是损失函数选择错误。本文结合论文理论与图像分类、目标检测、回归任务线上调参经验,完整拆解MSE、交叉熵、Huber、Focal Loss四大损失函数数学本质;梳理PyTorch原生API高频踩坑;给出Huber的delta、Focal Loss的\(\gamma\)工业调参方案;提供任务选型决策表、训练故障排查清单;附带可运行梯度对比实验代码,帮助开发者根据任务、噪声、样本不平衡快速选对损失函数

分享日常学习生活 451

VS Code C/C++ 插件 cpptools 内存占用异常

使用VS code连接WSL经常性出现终端和IDE卡住无法使用,关闭VS后即正常。

weixin_56637649的博客 214

ReactOS 图形系统分析(48):弧线绘制 — arc.c

arc.c是 win32k(内核态 GDI)中负责弧线绘制的模块,实现了 Windows 的ArcArcToChordPieAngleArc五个 API 的内核部分。整个模块只包含两个系统调用入口()和三个内部函数(、静态的IntArc),全部代码 408 行。应用层(user32 / gdi32)│├─ ArcTo() ──→ NtGdiArcInternal(GdiTypeArcTo, ...) │ 用户态包装│ 经 win32u.dll 进入内核▼│ arc.c ││ │ │。

大坡3D软件开发 223

C++ 面试真题】27. 聊聊 C++ 的内存泄漏与内存布局

"线上进程内存一直涨,怎么查?"——这是工程里最真实的内存问题。查泄漏绕不开进程的内存布局:数据在哪个区、泄漏发生在哪、工具看见的是什么。背得出"new 了没 delete"只是及格,真考你的是"**一张完整的布局图、泄漏的判定标准、AddressSanitizer 和 valgrind 怎么用、free 之后内存去哪了**"。本文把泄漏排查和内存布局合起来讲透。

码工许师傅 329

对于C++:文件IO流(fstream)的详细解析

本文详细介绍了C++中的文件IO流(fstream),包括三种文件流类型:ifstream(只读)、ofstream(只写)和fstream(读写)。重点讲解了文件打开机制、文本与二进制模式的区别、文件指针操作、缓冲管理、错误处理以及性能优化等内容。文章通过大量示例代码演示了文件流的基本操作、常见陷阱和最佳实践,如RAII自动管理资源、类型安全读写、批量操作提升性能等。最后强调了文件流作为C++I/O体系基础的重要性,是让数据持久化的关键技术。

2503_92929084的博客 369

C++ std::async 用法剖析

std::async大家熟悉吗?std::async是C++11引入的一个。

qq_42561732的博客 210

C++ 】map/set使用精讲:常见问题与典型用法(下)

1、map是关联容器,它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元素。2、在map中,键值key通常用于排序和惟一地标识元素,而值value中存储与此键值key关联的内容。;3、在内部,map中的元素总是按照键值key进行比较排序的。4、map中通过键值访问单个元素的速度通常比unordered_map容器慢,但map允许根据顺序对元素进行直接迭代(即对map中的元素进行迭代时,可以得到一个有序的序列)。

2501_93641778的博客 207

STM32L496-DCMI-OV7670.rar_DCMI HAL_STM32L496_l496_ov7670_ov7725

L496 HAL库 DCMI驱动OV7670

上一篇: 整数分块学习笔记
下一篇: 组合数学学习笔记
sunzz3183
博客等级 码龄7年 2粉丝 7原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值