首页 > 其他分享 >【学习笔记】杜教筛

【学习笔记】杜教筛

时间:2023-04-26 16:47:58浏览次数:37  
标签:lfloor frac limits sum 笔记 杜教 学习 rfloor times

如果我们要求一个积性函数 \(f(x)\) 的前缀和,可以用杜教筛在 \(O(n^{\frac{2}{3}})\) 的复杂度求出。
具体地,构造函数 \(g(x)\) 和函数 \(h(x)\) ,使得 $h=f*g $,要求的式子是 \(S(n)=\sum\limits_{i=1}^{n}f(i)\)。
开始推式子。

\[\sum\limits_{i=1}^{n}h(i)=\sum\limits_{i=1}^{n}g(i)\sum\limits_{i=1}^{}\sum\limits_{d|i}^{i}g(d)\times f(\frac{i}{d})\\ \sum\limits_{i=1}^{n}h(i)=\sum\limits_{i=1}^{n}g(i)\sum\limits_{j=1}^{\lfloor\frac{n}{j}\rfloor}f(j)\\ \sum\limits_{i=1}^{n}h(i)=g(1)S(n)+=\sum\limits_{i=1}^{n}g(i)\times S(\lfloor\frac{n}{i}\rfloor)\\ \sum\limits_{i=1}^{n}h(i)=g(1)S(n)+\sum\limits_{i=2}^{n}g(i)\times S(\lfloor\frac{n}{i}\rfloor)\\ g(1)S(n)=\sum\limits_{i=1}^{n}h(i)-\sum\limits_{i=2}^{n}g(i)\times S(\lfloor\frac{n}{i}\rfloor) \]

如果\(h(x)\)的前缀和好做,后面的式子可以整除分快。
 
对于莫比乌斯函数,可以构造 \(g(x)\)为\(I\)函数。
那么:\(S(n)= 1- \sum\limits_{i=2}{d}S(\lfloor{\frac{n}{d}}\rfloor)\)。
 
对于欧拉函数,可以构造为 \(I\).
那么: \(S(n) = \sum\limits_{i=1}^{n}-\sum\limits_{d=2}^{n}S(\lfloor{\frac{n}{d}}\rfloor)\)。

 
对于$ S(n) = \sum\limits_{i=1}^{n} i\times \phi(i)$,可以构造函数 \(g(x)=\frac{n}{d}\)。

\(\to\)对于某一类积性函数,可以通过观察积性函数的关系来构造函数。

标签:lfloor,frac,limits,sum,笔记,杜教,学习,rfloor,times
From: https://www.cnblogs.com/flywatre/p/17356525.html

相关文章

  • MarkDown学习
    MarKdown学习标题:三级标题四级标题字体Hello,World!两边加两个*Hello,World!两边加一个*Hello,World!两边加三个*Hello,World!两边加~~ 引用我是世界第一软前面加>分割线三个-或者三个* 图片方法 超链接点击开软  列表ABAa......
  • What is RabbitMQ?-动力节点RabbitMQ章节笔记
    1. WhatisRabbitMQ?1.1简介RabbitMQ是一个广泛使用的消息服务器,采用Erlang语言编写,是一种开源的实现 AMQP(高级消息队列协议)的消息中间件;RabbitMQ最初起源于金融系统,它的性能及稳定性都非常出色;AMQP协议(http://www.amqp.org),即 AdvancedMessageQueuingProtocol,高级消息队......
  • 动力节点最新RabbitMQ笔记——1-6章What is RabbitMQ?
    1. WhatisRabbitMQ?1.1简介RabbitMQ是一个广泛使用的消息服务器,采用Erlang语言编写,是一种开源的实现 AMQP(高级消息队列协议)的消息中间件;RabbitMQ最初起源于金融系统,它的性能及稳定性都非常出色;AMQP协议(http://www.amqp.org),即 AdvancedMessageQueuingProtocol,高级消息队......
  • 「学习笔记」tarjan 算法与强连通分量
    强连通的定义是:有向图G强连通是指,G中任意两个结点连通。强连通分量(StronglyConnectedComponents,SCC)的定义是:极大的强连通子图。说简单一点就是环,环内的点都在一个强连通分量里,单独一个点也算是强连通分量(自己可以到达自己)。变量inttim,sc;intdfn[N],low[N],scc[N];......
  • JVM笔记
    VM全称为Java虚拟机(JavaVirtualMachine),是Java程序的运行环境。它是一个抽象的计算机,能够在不同的操作系统上运行Java字节码(由Java源代码编译而来),实现了Java的一次编译、随处运行的特性。JVM除了提供基本的内存管理和垃圾回收功能外,还提供了类加载、字节码执行、异常处理、线程同......
  • JAVA笔记1
    Java的基础技术包括以下内容:Java语言基础:Java语言是一种面向对象的编程语言,具有丰富的数据类型、控制结构、类和对象等基本特性。Java程序员需要熟练掌握Java语法和语义规则,以便能够编写出正确、高效的代码。Java集合框架:Java集合框架是Java中用于管理和操作数据集合的一组A......
  • vue-router学习笔记
    1.路由基础配置 https://router.vuejs.org/zh/guide/2.动态路由根据设置的路径参数实现 constroutes=[//动态字段以冒号开始{path:'/users/:id',component:User},]。需要注意的是参数改变时(第一次访问该路径后,第二次起),组件实例被重复使用,会导致vue的生命周期......
  • 数据科学 IPython 笔记本 7.4 Pandas 对象介绍
    7.4Pandas对象介绍原文:IntroducingPandasObjects译者:飞龙协议:CCBY-NC-SA4.0本节是《Python数据科学手册》(PythonDataScienceHandbook)的摘录。在最基本的层面上,Pandas对象可以认为是NumPy结构化数组的增强版本,其中行和列用标签而不是简单的整数索引来标识。我们将在本......
  • 数据科学 IPython 笔记本 7.6 Pandas 中的数据操作
    7.6Pandas中的数据操作原文:OperatingonDatainPandas译者:飞龙协议:CCBY-NC-SA4.0本节是《Python数据科学手册》(PythonDataScienceHandbook)的摘录。NumPy的一个重要部分是能够执行快速的逐元素运算,包括基本算术(加法,减法,乘法等),和更复杂的运算(三角函数,指数函数和对数函数等......
  • 数据科学 IPython 笔记本 7.3 Pandas 数据操作
    7.3Pandas数据操作原文:DataManipulationwithPandas译者:飞龙协议:CCBY-NC-SA4.0本节是《Python数据科学手册》(PythonDataScienceHandbook)的摘录。在前一章中,我们详细介绍了NumPy及其ndarray对象,它在Python中提供了密集类型数组的高效存储和操作。在这里,通过详细了解P......