数论题中(杜教筛)交换求和符号

数论题中(杜教筛)交换求和符号文章目录方阵下三角约数倍数狄利克雷卷积以及杜教筛学习笔记突然对交换求和符号有了新的理解了,用矩阵转置的思路就很好理解,外层循环相当于枚举行,内层枚举列,交换次序就是先枚举列,再枚举行方阵正常的就是∑i=1n∑j=1nf(i,j)=∑j=1n∑i=1nf(i,j)\sum_{i=1}^n\sum_{j=1}^nf(i,j)=\sum_{j=1}^n\sum_{i=1}^nf(i,j)…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用


狄利克雷卷积 以及 杜教筛学习笔记

突然对交换求和符号有了新的理解了,用矩阵转置的思路就很好理解,外层循环相当于枚举行,内层枚举列,交换次序就是先枚举列,再枚举行

方阵

正常的就是 ∑ i = 1 n ∑ j = 1 n f ( i , j ) = ∑ j = 1 n ∑ i = 1 n f ( i , j ) \sum_{i=1}^n \sum_{j=1}^nf(i,j)=\sum_{j=1}^n \sum_{i=1}^nf(i,j) i=1nj=1nf(i,j)=j=1ni=1nf(i,j)

再写成习惯的i在外面,j在里面,相当于换哈元 = ∑ i = 1 n ∑ j = 1 n f ( j , i ) =\sum_{i=1}^n \sum_{j=1}^nf(j,i) =i=1nj=1nf(j,i)
相当于原来元素 f ( i , j ) f(i,j) f(i,j)的位置变成了 f ( j , i ) f(j,i) f(j,i)

下三角

∑ i = 1 n ∑ j = i n f ( i , j ) = ∑ j = 1 n ∑ j = i n f ( i , j ) \sum_{i=1}^n \sum_{j=i}^nf(i,j)=\sum_{j=1}^n \sum_{j=i}^nf(i,j) i=1nj=inf(i,j)=j=1nj=inf(i,j)
这个就是常见的去重的时候的枚举,行数不超过列数
同样想成想成先枚举列再枚举行
换哈元 = ∑ i = 1 n ∑ j = i n f ( j , i ) =\sum_{i=1}^n \sum_{j=i}^nf(j,i) =i=1nj=inf(j,i)和上面差不多

约数倍数

如果上面的很容易理解来试一哈这种约数倍数的哇,这个就是像杜教筛的题里面要用到的
∑ i = 1 n ∑ j ∣ i n f ( i , j ) = ? \sum_{i=1}^n\sum_{j|i}^nf(i,j)=? i=1njinf(i,j)=?
其中 i ∣ j i|j ij是表示 i 是 j i是j ij的约数,比如当 j = 6 j=6 j=6的时候, i i i就要枚举 1 , 2 , 3 , 6 1,2,3,6 1,2,3,6

这个也要从矩阵转置的角度来看,长得也和下三角差不多,只不过没有完全填充

交换次序就是先枚举列再枚举行,变成
∑ j = 1 n ∑ j ∣ i n f ( i , j ) \sum_{j=1}^n\sum_{j|i}^nf(i,j) j=1njinf(i,j)
这里内层求和还是 j 是 i 的 约 数 , i 是 j 的 倍 数 , 也 就 是 i = k j , k = 1 , 2 , 3… j是i的约数,i是j的倍数,也就是i=kj,k=1,2,3… ji,ij,i=kj,k=1,2,3...
所以在内层求和我们就阔以直接除以 j j j,这样 i i i就阔以从 1 1 1开始枚举了
变成 ∑ j = 1 n ∑ i = 1 [ n j ] f ( i j , j ) , 因 为 要 保 持 不 变 , 里 面 就 要 变 成 f ( i ⋅ j , j ) \sum_{j=1}^n\sum_{i=1}^{[\frac{n}{j}]}f(ij,j),因为要保持不变,里面就要变成f(i\cdot j,j) j=1ni=1[jn]f(ij,j),,f(ij,j)
然后再换一哈字母变成熟悉的样子,就变成了:
∑ i = 1 n ∑ j = 1 [ n i ] f ( j i , i ) \sum_{i=1}^n\sum_{j=1}^{[\frac{n}{i}]}f(ji,i) i=1nj=1[in]f(ji,i)
最 终 的 等 式 就 是 : ∑ i = 1 n ∑ j ∣ i n f ( i , j ) = ∑ i = 1 n ∑ j = 1 [ n i ] f ( j i , i ) 最终的等式就是:\sum_{i=1}^n\sum_{j|i}^nf(i,j)=\sum_{i=1}^n\sum_{j=1}^{[\frac{n}{i}]}f(ji,i) :i=1njinf(i,j)=i=1nj=1[in]f(ji,i)
那我们就用杜教筛的式子来套一哈喃,看对不对,原等式是这样的:
∑ i = 1 n ∑ d ∣ i n g ( d ) ⋅ f ( i d ) = ∑ i = 1 n g ( i ) ⋅ ∑ j = 1 n i f ( j ) \sum_{i=1}^n\sum_{d|i}^ng(d)\cdot f(\frac{i}{d})=\sum_{i=1}^ng(i)\cdot \sum_{j=1}^{\frac{n}{i}}f(j) i=1nding(d)f(di)=i=1ng(i)j=1inf(j)
这里把 j j j换成 d d d更有约数这个含义一些,不影响,其中的
∑ i = 1 n ∑ d ∣ i n g ( d ) ⋅ f ( i d ) = ∑ i = 1 n ∑ d = 1 [ n i ] g ( d ) ⋅ f ( d i d ) = ∑ i = 1 n ∑ d = 1 [ n i ] g ( d ) ⋅ f ( i ) , 然 后 g ( d ) 阔 以 提 出 去 = ∑ i = 1 n g ( i ) ⋅ ∑ j = 1 n i f ( j ) \sum_{i=1}^n\sum_{d|i}^ng(d)\cdot f(\frac{i}{d})=\sum_{i=1}^n\sum_{d=1}^{[\frac{n}{i}]}g(d)\cdot f(\frac{di}{d})=\sum_{i=1}^n\sum_{d=1}^{[\frac{n}{i}]}g(d)\cdot f(i),然后g(d)阔以提出去=\sum_{i=1}^ng(i)\cdot \sum_{j=1}^{\frac{n}{i}}f(j) i=1nding(d)f(di)=i=1nd=1[in]g(d)f(ddi)=i=1nd=1[in]g(d)f(i),g(d)=i=1ng(i)j=1inf(j)
嗯(✪ω✪)一模一样٩(๑>◡<๑)۶

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182682.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • jupyter的代码能用pycharm运行吗_pycharm project interpreter

    jupyter的代码能用pycharm运行吗_pycharm project interpreter最近在学CS231n的课程,打算把作业做一下。由于…

  • PCEP 协议学习笔记

    PCEP 协议学习笔记RFC5440章节:PCReq消息响应PCC发送的PCReq的

  • 编程自学迷途!要知道到底自己该学习些什么,该怎样学

    编程自学迷途!要知道到底自己该学习些什么,该怎样学文章目录问题一:怀疑自己能力,自己认为编程只靠天分问题二:专业和学历问题问题三:不重视基础知识问题四:不重视团队精神问题五:代码记不住问题六:没认清自己所处阶段1、技术标志2、时间标志3、项目标志4、思维标志5、与人交往6、别人评价7、收入标志8、心理素质问题一:怀疑自己能力,自己认为编程只靠天分无论哪个领域的大师,他们都认为天才不是成为一流科学家必须的,反而认为兴趣,热情,还有努力,才是…

  • jenkins拉取gitlab代码_jenkins配置git自动部署

    jenkins拉取gitlab代码_jenkins配置git自动部署前言python自动化的脚本开发完成后需提交到git代码仓库,接下来就是用Jenkins拉取代码去构建自动化代码了新建项目打开Jenkins新建一个自由风格的项目源码管理Repository

  • 网关 gateway_gateway网关集群

    网关 gateway_gateway网关集群GateWay网关管理GateWayCloud全家桶中有个很重要的组件就是网关,在1.x版本中都是采用的Zuul网关;但在2.x版本中,zuul的升级一直跳票,SpringCloud最后自己研发了一个网关替代Zuul,那就是SpringCloudGatewayGateway是在Spring生态系统之上构建的API网关服务,基于Spring5,SpringBoot2和ProjectReactor等技术。Gateway旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤

    2022年10月11日
  • pycharm virtualenv和conda_pycharm文件名红色

    pycharm virtualenv和conda_pycharm文件名红色from: http://www.cnblogs.com/IDRI/p/6354237.htmlLinux:启动虚拟环境:sourceenv/bin/activate Windows:pipinstallvirtualenv创建虚拟环境目录env激活虚拟环境:C:\Python27\Scripts

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号