狄利克雷生成函数

由于太菜了没听懂,就去学了下用狄利克雷生成函数(DGF)的奇怪做法。

推导过程很繁琐,但个人感觉比min25筛好懂

P5325为例,考虑求积性函数pPrime f(pk)=pk(pk1)的前缀和

前置知识:狄利克雷生成函数

DGF{fi}=i=1fiix

那么显然黎曼函数就是1的DGF:

ζ(x)=i=11ix

常见数论函数的狄利克雷生成函数都可以自己手推,在这里给出一个欧拉函数的DGF来演示常规推导思路:

DGF{φ} (x)=i=0φ(i)ix

由于欧拉函数的积性,考虑枚举质数:

=pPrimei=0φ(pi)pix

=pPrime(1+i=1φ(pi)pix)

=pPrime(1+i=1piixi=1piix1)

=pPrime(1+i=1pi(1x)1pi=1pi(1x))

=pPrime(1+p1x1p1xpx1p1x)

=pPrime1px1p1x

=pPrime1px1p1x

我们又有:

ζ(x)=i=11ix=pPrimei=01pix=pPrime11px

所以原式为:

=pPrime1ζ(x)1ζ(x1)=pPrimeζ(x1)ζ(x)

其实求DGF并不需要在每个值上都有显性的式子,只要f(pk)有定义且为积性函数就,那么它的DGF就为:

pPrimei=0f(pi)pix

关于这个DGF,还有一个重要性质:

表示狄利克雷卷积,则

DGF{f} DGF{g}=DGF{fg}

证明很显然:

DGF{f} DGF{g}=i=1f(i)ixi=1g(i)ix=i=1d|if(d)g(id)ix=DGF{fg}

好了可以看题目了。在此会跳过一些冗杂步骤而只写出一些关键步骤。

先考虑求出f的DGF:

i=1f(i)ix

=pPrimei=0f(pi)pix

=pPrime(1+i=1pi(pi1)pix)

=pPrime(1+i=1pi(2x)i=1pi(1x)))

=pPrime(1+p2x1p2xp(1x)1p1x)

里面的式子瞎化简完:

=pPrimep32x2p1x+1(1p2x)(1p1x)

仔细观察,分母实际上是1ζ(x2)ζ(x1)

所以原式为:

=ζ(x2)ζ(x1)pPrimep32x2p1x+1

我们左边看起来是个很清爽的式子,但右边很麻烦。我们DGF一般要弄成:

pPrime(1+i=2f(pi)pix)

的形式。

右边那一坨,刚才手动展开了化简过程的应该可以看出来:

=ζ(x2)ζ(x1)pPrime(1p1x)2+p2(1x)+1p2(1x)

为了得到常数1,我们在里面除一个(1p1x)2,相当于在外面乘了(1p1x)2,式子变成:

=ζ(x2)ζ(x1)pPrime1+p2(1x)+1p2(1x)(1p1x)2

把分式拆开,发现:

=ζ(x2)ζ(x1)pPrime(1+i=2(i1)(pi(1x)+1(i1)pi(1x)))

=ζ(x2)ζ(x1)pPrime(1+i=2(i1)(pi+1pi)pix)

有什么用呢???

我们之前有性质,两函数DGF的乘积为两函数狄利克雷卷积的DGF。

令:

DGF{g} (x)=ζ(x2)ζ(x1),DGF{h} (x)=pPrime(1+i=2(i1)(pi+1pi)pix)

那么f=gh,则:

i=1nf(i)=i=1nd|ig(d)h(id)

=d=1nh(d)d|ig(id)=d=1nh(d)i=1ndg(i)

我们观察上面的DGF,显然可以得到h(pi)=(i1)(pi+1pi),且f(p)=0

所以h(x)不为0的x必定是个Powerful Number,即每个质因子的次数都大于2.可以证明它的个数不超过n,我们可以打出质数表搜索,关键在求i=1ndg(i)上。直接做很难搞。

考虑当pPrime时:

f(p)=p(p1)=g(1)h(p)h(1)g(p)=g(p)

所以g(p)=p(p1),同时他的DGF长的也很像φ的DGF,我们可以猜测g(x)=xφ(x),然后把它的DGF求出来发现是对的。而他的前缀和我们可以杜教筛。

这样就做完了。

posted @   Smallbasic  阅读(294)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示