博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
杜教筛
阅读量:5080 次
发布时间:2019-06-12

本文共 1113 字,大约阅读时间需要 3 分钟。

狄利克雷卷积

\(\space\space\space\space\space\space\)定义:两个数论函数f和g的卷积为\((f*g)(n)=\sum_{d|n} f(d)⋅g(\frac{n}{d})\)。前面的括号代表将f卷g,后面的括号代表范围。

\(\space\space\space\space\space\space\)元函数\(ϵ\):满足:\(f∗ϵ=f\)

莫比乌斯函数

\(\space\space\space\space\space\space\)莫比乌斯函数\(\mu\)满足\(\sum_{d|n}μ(d)=[n=1]\),我们用狄利克雷卷积来表示\(μ∗I=ϵ\)

欧拉函数

\(\space\space\space\space\space\space\)欧拉函数有一个性质\(\sum_{d|n}φ(d)=n\),我们用狄利克雷卷积来表示\(φ∗I=id\)

莫比乌斯函数与欧拉函数的关系

\(φ∗I=id\)

\(→φ∗I∗μ=id∗μ\)
\(→φ∗ϵ=id∗μ\)
\(→φ=id∗μ\)
\(→φ(n)=\sum_{d|n}μ(d)\frac nd\)
我们把这个式子的两边同时除以n,则:
\(\frac {φ(n)}{n}=\sum_{d|n} \frac{μ(d)}{d}\)

杜教筛

杜教筛是用低于线性的复杂度来求\(\sum_{i=1}^{n}f(i)\)

我们首先构造两个函数\(g\),\(h\),使其满足\(h=f*g\)
现在我们求\(\sum_{i=1}^{n}h(i)\)
\(\sum_{i=1}^{n}h(i)=\sum_{i=1}^{n}\sum_{d|i}g(d)⋅f(\frac{i}{d})\)
\(=\sum_{d=1}^{n}g(d)⋅\sum_{i=1}^{⌊nd⌋}f(i)\)

\(\sum_{i=1}^{n}h(i)=\sum_{d=1}^{n}g(d)⋅S(⌊nd⌋)\)

我们将右边式子的第一项给提出
\(\sum_{i=1}^{n}h(i)=g(1)⋅S(n)+\sum_{d=2}^{n}g(d)⋅S(⌊nd⌋)\)
\(g(1)S(n)=\sum_{i=1}^{n}h(i)−\sum_{d=2}^{n}g(d)⋅S(⌊nd⌋)\)
其中\(h(i)=(f∗g)(i)\)
根据这个式子,我们只要\(h(i)\)的前缀和很好求,就可以对后面的式子用整除分块在\(O(n^{\frac{2}{3}})\)的时间内快速求解

转载于:https://www.cnblogs.com/wls001/p/10075625.html

你可能感兴趣的文章
javascript面向对象(三):非构造函数的继承
查看>>
Docker与自动化测试及其测试实践
查看>>
chrome保存网页为单个文件(mht格式)
查看>>
Mysql的row_format(fixed与dynamic)
查看>>
Linux命令应用大词典-第42章 PostgreSQL数据库
查看>>
负数的二进制表示
查看>>
create-react-app设置proxy反向代理不起作用
查看>>
Node.js之http模块中类的关系详解之客户端(下)
查看>>
web 页面传值方法
查看>>
Spring MVC数据绑定大全 .
查看>>
使用log4j的邮件功能
查看>>
NLB负载情况下视图状态的消息身份验证代码 (MAC)失败
查看>>
ECS之旅——常用的linux指令
查看>>
HDOJ 1466 计算直线的交点数
查看>>
Machine Learning(1)——k-means算法
查看>>
bzoj 3309 反演
查看>>
将访问的文件夹变为磁盘盘符-摘自网络
查看>>
并行开发——Parallel的使用 -摘自网络
查看>>
IO模型介绍
查看>>
Vue 路由设置router
查看>>