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

数论题中(杜教筛)交换求和符号文章目录方阵下三角约数倍数狄利克雷卷积以及杜教筛学习笔记突然对交换求和符号有了新的理解了,用矩阵转置的思路就很好理解,外层循环相当于枚举行,内层枚举列,交换次序就是先枚举列,再枚举行方阵正常的就是∑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)
嗯(✪ω✪)一模一样٩(๑>◡<๑)۶

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 树莓派入门(一)—— 树莓派4B介绍

    树莓派入门(一)—— 树莓派4B介绍树莓派由注册于英国的慈善组织“RaspberryPi基金会”开发,Eben·Upton/埃·厄普顿为项目带头人。2012年3月,英国剑桥大学埃本·阿普顿(EbenEpton)正式发售世界上最小的台式机,又称卡片式电脑,外形只有信用卡大小,却具有电脑的所有基本功能,这就是RaspberryPi电脑板,中文译名”树莓派”。自问世以来,受众多计算机发烧友和创客的…

    2022年4月30日
    203
  • 初中生学java行吗_初中生学Java开发有前景吗?「建议收藏」

    初中生学java行吗_初中生学Java开发有前景吗?「建议收藏」初中生学Java开发有前景吗?学Java手机开发有什么优势?Java手机开发工程师前景好吗?据北大青鸟华工学校的专业老师分析。作为唯一在互联网上开发的语言,Java平台以其移动性、安全性和开放性受到追捧。据IDC预计,自2001年起的其后5年内,采用Java的IT产品的价值将翻番,在2006年将达到4.53亿美元,年增长率为14.9%。截止到2003年5月,Java注册开发商超过300万人,对JR…

    2022年7月26日
    3
  • characterEncodingFilter作用[通俗易懂]

    characterEncodingFilter作用[通俗易懂]characterEncoding表示编码方式,enabled表示是否启用编码,分别从初始化参数中取值。web.xml中的配置如下:如果使用的字符编码Filter、request中取出的字符可能是

    2022年7月4日
    29
  • Pytorch(五)入门:DataLoader 和 Dataset

    Pytorch(五)入门:DataLoader 和 DatasetDataLoader和Dataset构建模型的基本方法,我们了解了。接下来,我们就要弄明白怎么对数据进行预处理,然后加载数据,我们以前手动加载数据的方式,在数据量小的时候,并没有太大问题,但是到了大数据量,我们需要使用shuffle,分割成mini-batch等操作的时候,我们可以使用PyTorch的API快速地完成这些操作。Dataset是一个包装类,用来将数据包装为Datas…

    2022年6月14日
    26
  • 不让Editplus保存时java文件时生成.bak文件

    不让Editplus保存时java文件时生成.bak文件

    2022年2月23日
    36
  • 连不上docker mysql_docker跨主机通信

    连不上docker mysql_docker跨主机通信宿主机连接docker中的mysqldokcer安装mysqldockerrun\–namemysql\-v$PWD/mysql:/var/lib/mysql\-p3306:3306\-eMYSQL_ROOT_PASSWORD=123456\-dmysql:5.7宿主机连接docker中的mysql错误的连接方式$mysql-uroot-pEnterpasswor…

    2022年8月21日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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