狄利克雷生成函数

一个没啥用的东西,权当加深对数论函数和狄利克雷卷积的理解。

定义

序列 {f1,f2,…}\{f_1,f_2,\dots\}{f1,f2,} 的狄利克雷生成函数 DGF 定义为

f(s)=∑n=1∞fnnsf(s)=\sum_{n=1}^{\infin}\frac{f_n}{n^s}f(s)=n=1nsfn

这里不要求 fff 是积性函数。

显然两个序列的狄利克雷卷积的 DGF 等于它们 DGF 的乘积。

为什么 nsn^sns 要写在下面?

本质上写上面也没啥区别,但是在这之前有个叫黎曼的数学家整了个叫 Zeta 的函数(马上就会讲到),为了让收敛的形式好看一点就定义成了分数。后来大家就沿用了这一习惯。

本文中为了方便起见,可能会混用 n−sn^{-s}ns 的写法。

黎曼 Zeta 函数

黎曼 Zeta 函数定义为

ζ(s)=∑n=1∞1ns\zeta (s)=\sum_{n=1}^{\infin}\frac1 {n^s}ζ(s)=n=1ns1

对就是那个臭名昭著的猜想里面的那个函数。

不难看出 Zeta 函数是恒等函数 I(n)=1I(n)=1I(n)=1 的 DGF,这和 OGF 的 11−x\frac 1{1-x}1x1,EGF 的 exe^xex 有着同样的地位,是 DGF 理论的基石。

DGF 与积性函数

既然是狄利克雷卷积,我们希望这个能与积性函数的理论扯上关系。

以 Zeta 函数为例,我们把每个 nnn 质因数分解,然后考虑每个质数 ppp 的贡献,不难得到

ζ(s)=∏p∈prime∑i=0∞1pis=∏p∈prime11−p−s\zeta(s)=\prod_{p\in prime}\sum_{i=0}^{\infin}\frac 1{p^{is}}\\=\prod_{p\in prime}\frac{1}{1-p^{-s}}ζ(s)=pprimei=0pis1=pprime1ps1

其他积性函数也可以用类似方法转成一个伪封闭形式。

常见数论函数函数的 DGF

  • 莫比乌斯函数 μ\muμ

∏p∈prime(1−p−s)=1ζ(s)\prod_{p\in prime}(1-p^{-s})=\frac 1{\zeta (s)}pprime(1ps)=ζ(s)1

莫比乌斯反演有四种证法,你都知道么

  • id(n)=nid(n)=nid(n)=n

∑i=1∞nns=∑i=1∞1ns−1=ζ(s−1)\sum_{i=1}^{\infin}\frac{n}{n^s}=\sum_{i=1}^{\infin}\frac 1{n^{s-1}}=\zeta(s-1)i=1nsn=i=1ns11=ζ(s1)

类似的有 kkk 次幂函数 idk(n)=nkid_k(n)=n^kidk(n)=nk 的 DGF 是 ζ(s−k)\zeta(s-k)ζ(sk)

  • 欧拉函数 φ\varphiφ

∏p∈prime(1+∑i=1∞(p−1)pi−1pis)=∏p∈prime(1+∑i=1∞pi−pi−1pis)=∏p∈prime(1+∑i=1∞pi(1−s)−∑i=1∞pi(1−s)−1)=∏p∈prime(1+p1−s1−p1−s−p−s1−p1−s)=∏p∈prime(1+p1−s−p−s1−p1−s)=∏p∈prime1−p−s1−p1−s=ζ(s−1)ζ(s)\prod _{p\in prime}\left(1+\sum_{i=1}^{\infin}\frac{(p-1)p^{i-1}}{p^{is}}\right)\\=\prod _{p\in prime}\left(1+\sum_{i=1}^{\infin}\frac{p^i-p^{i-1}}{p^{is}}\right)\\=\prod _{p\in prime}\left(1+\sum_{i=1}^{\infin}p^{i(1-s)}-\sum_{i=1}^{\infin}p^{i(1-s)-1}\right)\\=\prod _{p\in prime}\left(1+\frac{p^{1-s}}{1-p^{1-s}}-\frac{p^{-s}}{1-p^{1-s}}\right)\\=\prod _{p\in prime}\left(1+\frac{p^{1-s}-p^{-s}}{1-p^{1-s}}\right)\\=\prod _{p\in prime}\frac{1-p^{-s}}{1-p^{1-s}}\\=\frac{\zeta(s-1)}{\zeta(s)}pprime(1+i=1pis(p1)pi1)=pprime(1+i=1pispipi1)=pprime(1+i=1pi(1s)i=1pi(1s)1)=pprime(1+1p1sp1s1p1sps)=pprime(1+1p1sp1sps)=pprime1p1s1ps=ζ(s)ζ(s1)

  • 约数个数 ddd: ζ2(s)\zeta^2(s)ζ2(s)
  • 约数和 σ\sigmaσ:ζ(s)ζ(s−1)\zeta(s)\zeta(s-1)ζ(s)ζ(s1)

然后你就可以发现一些类似于 “欧拉函数卷约数个数等于约数和” 的奇怪的东西。

DGF 乘法

和 DGF 没啥关系,直接用数论函数暴卷即可,复杂度是 O(nlog⁡n)O(n\log n)O(nlogn) 的。

或者用一种类似高维前缀和的做法,可以做到 O(nlog⁡log⁡n)O(n\log\log n)O(nloglogn),不过没啥用。

DGF 除法

数论函数(注意不是 DGF) F(n),G(n)F(n),G(n)F(n),G(n),求 HHH 使得 F=H∗GF=H*GF=HG

Fn=∑d∣nHdGndF_n=\sum_{d\mid n}H_d G_{\frac nd}Fn=dnHdGdn

HnG1=Fn−∑d∣n,d<nHdGndH_nG_1=F_n-\sum_{d\mid n,d<n}H_dG_{\frac nd}HnG1=Fndn,d<nHdGdn

算出一个 HnH_nHn 就暴力枚举倍数更新,复杂度是 O(nlog⁡n)O(n\log n)O(nlogn)

DGF 求导与积分

对每一项

fnns\frac{f_n}{n^s}nsfn

sss 求导

−ln⁡n⋅fnns-\ln n\cdot\frac{f_n}{n^s}lnnnsfn

积分

−1ln⁡nfnns-\frac 1{\ln n}\frac{f_n}{n^s}lnn1nsfn

n=1n=1n=1 要特殊处理一下。

这个 ln⁡\lnln 不好搞,但我们的求导和积分都是成对出现的,这个 ln⁡\lnln 一定可以用换底公式消掉,所以我们只需要维护它们的倍数关系就可以了。

也就是说,用来代替的 fff 只需要满足 f(1)=0,f(ab)=f(a)+f(b)f(1)=0,f(ab)=f(a)+f(b)f(1)=0,f(ab)=f(a)+f(b),且在大于 111 的数内不能有零点(否则一不小心除数就会变成 000)。可以用质因子次数和来实现。

连负号都不用加。

DGF 对数

ln⁡(F(s))=∫F′(s)F(s)ds\ln (F(s))=\int \frac{F'(s)}{F(s)}dsln(F(s))=F(s)F(s)ds

DGF 指数

G(s)=exp⁡(F(s))G′(s)=F′(s)exp⁡(F(s))=F′(s)G(s)G(s)=\exp(F(s))\\ G'(s)=F'(s)\exp(F(s))=F'(s)G(s) G(s)=exp(F(s))G(s)=F(s)exp(F(s))=F(s)G(s)

F,GF,GF,G 对应的数论函数fn,gnf_n,g_nfn,gn

设质因子个数函数为 cnc_ncn(用来代替 ln⁡\lnln 的那个)

cngn=∑d∣ngndcdfdc_ng_n=\sum_{d\mid n}g_{\frac nd}c_df_dcngn=dngdncdfd

d=1d=1d=1 的时候 cd=0c_d=0cd=0 没有贡献,和除法一样算出一个更新一个就可以了。

例题:「EC Final 2019」狄利克雷 k 次根 加强版

后面可能会写点更实际的应用,比如帮你一眼看出怎么卷杜教筛之类的。先咕着。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/314906.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET Core Web Api之JWT(一)

最近沉寂了一段&#xff0c;主要是上半年相当于休息和调整了一段时间&#xff0c;接下来我将开始陆续学习一些新的技能&#xff0c;比如Docker、Jenkins等&#xff0c;都会以生活实例从零开始讲解起&#xff0c;到时一并和大家分享和交流。接下来几节课的内容将会讲解JWT&#…

Codeforces Round #658 (Div. 2) D. Unmerge 思维 + 背包

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 我们可以假设有两个桶&#xff0c;让后向里面放数&#xff0c;可以发现&#xff0c;如果向其中放入了aia_iai​&#xff0c;那么紧跟在他后面的所有<ai<a_i<ai​的数都必须跟在ai…

【牛客NOIP模拟】牛半仙的魔塔(增强版)【贪心】【并查集】

题意&#xff1a;一个魔塔游戏的地图是一棵以 111 为根的树&#xff0c;起点为根&#xff0c;除根外每个结点有一个怪物&#xff0c;给定每个怪物血量、攻击、防御、奖励蓝宝石个数&#xff08;加防御&#xff09;&#xff0c;勇士的血量、攻击、防御&#xff0c;遇到怪物必须战…

撸过一万行代码,你看过这篇文章吗?

北上广深真的是技术的宝地吗&#xff1f;犹记得刚刚参加工作之后&#xff0c;有人邀请我去深圳&#xff0c;说沿海地区是IT行业从业人员的宝地&#xff0c;只有在那里才会学到真正的技术&#xff0c;而且能拿到更高的工资&#xff0c;不管从哪个层面来说&#xff0c;都值得你去…

Codeforces Round #727 (Div. 2) E. Game with Cards dp + 思维

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 初始有左右手&#xff0c;上面各有一个数字为000的卡牌&#xff0c;每次都有一个新卡kik_iki​&#xff0c;你可以将其放在左手或者右手&#xff0c;使两只手上的卡片范围在[ll,i,rl,i][l_{l,i},r_{l,i}][ll…

【CEOI2017】Building Bridges【任意坐标斜率优化】【李超线段树】

题意&#xff1a;有 nnn 个柱子&#xff0c;每个柱子有高度 hih_ihi​。你需要在柱子间修桥&#xff0c;在 i,ji,ji,j 间修桥代价为 (hi−hj)2(h_i-h_j)^2(hi​−hj​)2,桥梁只能在柱子处相交&#xff0c;未安装桥的柱子需要拆除&#xff0c;代价为 wiw_iwi​&#xff08;可能为…

【牛客NOIP模拟】路径难题【建图】【最短路证明】

题意&#xff1a;一张 nnn 个点 mmm 条边的无向图&#xff0c;边带距离&#xff0c;可以坐出租车&#xff0c;花费为距离除以常数 rrr 向上取整&#xff1b;也可以坐公交车&#xff0c;每路车行驶路线给定&#xff0c;无论坐多少站花费都为 cic_ici​ &#xff08;每路车可能不…

Codeforces Round #595 (Div. 3) F. Maximum Weight Subset 树形dp

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; n≤200n\le200n≤200 思路&#xff1a; 明显的树形dpdpdp&#xff0c;所以考虑一下dpdpdp状态。 这个题状态挺神的。。可能是因为我太菜了&#xff0c;看了半天才看懂。 算法111: 复杂度O(n3)O(n^3)O(n3) …

利用ICSharpCore搭建基于.NET Core的机器学习和深度学习的本地开发环境

每个人都习惯使用Python去完成机器学习和深度学习的工作&#xff0c;但是对于习惯于某种特定语言的人来说&#xff0c;转型不是那么容易的事。这两年我花了不少时间在Python&#xff0c;毕竟工作的重心也从移动开发转为机器学习和深度学习。感谢我的老板给我很大的空间去开拓新…

【牛客NOIP模拟】牛半仙的妹子序列【DP】【Segment Tree Beats】

题意&#xff1a;排列的极长上升子序列个数 n≤2105n\leq 2\times 10^5n≤2105 显然有个 dp fn∑i<n,pi<pn,∄i<j<ns.t. pi<pj<pnfif_n\sum_{i<n,p_i<p_n,\nexists i<j<n\text{ s.t. }p_i<p_j<p_n}f_ifn​i<n,pi​<pn​,∄i<j&l…

Acwing 252. 树 点分治

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 好久没写淀粉质了&#xff0c;心血来潮复习一下。 淀粉质通常用来统计路径个数&#xff0c;将路径分为子树内的和子树之间的。子树内的递归处理&#xff0c;子树间的存下信息来每次都处理即…

CLR与JVM

首先要纠正垃圾回收在于JVM和.NET的CLR的平台功能而不是语言本身。存在一些历史差异主要是因为.Net的设计是从java&#xff08;和其他基于gc的平台&#xff09;演变中吸取教训改良后的结果。CLR一开始就设计成了分代垃圾回收&#xff0c;但是初始JVM没有分代垃圾收集器。第一代…

【牛客NOIP模拟】 牛牛的RPG游戏【二维偏序】【任意坐标斜率优化】【CDQ 分治】【李超线段树】

题意&#xff1a; nmn\times mnm 的网格图&#xff0c;每个点有两个权值 vali,j,bufi,jval_{i,j},buf_{i,j}vali,j​,bufi,j​&#xff0c;从 (1,1)(1,1)(1,1) 开始只能向下或向右走到 (n,m)(n,m)(n,m) &#xff0c;在某个位置时可以选择触发该位置的事件&#xff08;也可不触发…

Free tour II SPOJ - FTOUR2 点分治 + 树状数组

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个有nnn个点的树&#xff0c;有mmm个点拥堵&#xff0c;连接两个点的一条边有一个美丽值&#xff0c;让你选择一个路径&#xff0c;使其经过的拥堵点数不超过kkk且美丽值最大。 n≤2e5,m≤n,k≤mn\le2…

使用Mutex进行线程处理

Mutex就像一个C&#xff03;锁(lock)&#xff0c;但它可以跨多个进程工作。换句话说&#xff0c;Mutex可以是计算机范围的&#xff0c;也可以是应用程序范围的。Mutex是一个同步原语&#xff0c;也可用于进程间同步。当两个或多个线程需要同时访问共享资源时&#xff0c;系统需…

【NOIP模拟】开車【回退贪心】【multiset】

题意&#xff1a;有 1∼n1 \sim n1∼n nnn 个城市排成一行&#xff0c;给定每个城市的单位距离油价和两个城市间的距离、油箱容量&#xff0c;求 111 到 nnn 最小代价。 用 multiset 来维护当前油箱中的油的价格。 在每个城市假装把油加满。如果发现这个城市的油比油箱里的一…

Educational Codeforces Round 75 (Rated for Div. 2) D. Salary Changing 二分 + check

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 直接算不好算&#xff0c;考虑二分这个中位数midmidmid。 考虑如何checkcheckcheck&#xff0c;这个分情况来就好了&#xff1a; (1)mid>a[i].r(1)mid>a[i].r(1)mid>a[i].r&#…

【Linux】Linux常见指令解析上

目录 1. 前言2. ls指令3. pwd指令4. cd指令3.1 cd常见快捷指令 4. touch指令5. mkdir指令6. rmdir指令 && rm指令 &#xff08;重要&#xff09;6.1 rmdir指令6.2 rm指令 7. man指令 1. 前言 这篇文章我们将详细介绍一下Linux下常见的基本指令。 2. ls指令 语法: ls [选…

CSP2020 赛前总结

比赛策略与思路 暴力不好写&#xff0c;没法对拍 ≠\neq​ 稳了签到题要求稳&#xff0c;可以当熟悉环境。但也要注意速度&#xff0c;为后面的题腾出时间。正解调不出来就写暴力&#xff0c;一是确认题意、换下脑筋&#xff0c;二是提供对拍&#xff0c;三是拿到保底分。正…

PYPL 7月榜单公布:Java份额出现下降趋势

PYPL(PopularitY of Programming Language&#xff0c;编程语言流行指数) 7 月份的榜单已发布&#xff0c;目前包含四个排行榜&#xff0c;囊括编程语言、IDE、ODE(Online IDE) 以及数据库四大领域。PYPL 是非常流行的参考指标&#xff0c;其榜单数据的排名均是根据榜单对象在 …