交换求和号

news/2024/4/20 13:41:24/文章来源:https://www.cnblogs.com/efX-bk/p/swap_the_Sum.html

交换求和号

交换求和号是 OI 中常用的数学技巧……

考虑(这里 \(\bigcup B(i)\) 表示把所有 \(B(i)\) 拼接起来的集合,而不是集合的并)

\[\sum_{i\in A}\sum_{j\in\bigcup_{i\in A} B(i)}f(i,j) \]

我们期望得到交换求和号后的形式(在 OI 中,我们大概并不会遇到无限求和的情形),即

\[\sum_{j\in C}\sum_{i\in\bigcup_{j\in C} D(j)}f(i,j)=\sum_{i\in A}\sum_{j\in\bigcup_{i\in A} B(i)}f(i,j) \]

显然,我们有 \(C=\bigcup\limits_{i\in A} B(i)\)

现在的问题是求出函数 \(D\)

考虑 \(B(i)\) 的反向映射 \(B^\prime(x)\) 表示

\[B^\prime(x)=\{i\mid x\in B(i)\} \]

显然就有

\[\bigcup_{j\in C} D(j)=\left(\bigcup_{x\in C}B^\prime(x)\right)\cap A \]

交换求和号的好处是显而易见的,因为我们有

\[\sum_{i\in A}\sum_{j\in\bigcup B(i)}f(i,j)g(i)=\sum_{i\in A}g(i)\sum_{j\in\bigcup B(i)}f(i,j) \]

如果 \(\sum f(i,j)\) 是个容易处理的函数,那么就可以得到大为简化的结果。

比如下面这个例子

\[\begin{align*} \sum_{d=1}^n\varphi(d)\lfloor\frac{n}{d}\rfloor&=\sum_{d=1}^n\varphi(d)\sum_{i=1\\d|i}^n1\\ &=\sum_{d=1}^n\sum_{i=1\\d|i}^n\varphi(d)\\ &=\sum_{i=1}^n\sum_{d|i}\varphi(d)\\ &=\sum_{i=1}^ni\\ &=\frac{n(n+1)}{2} \end{align*} \]

第二行到第三行的变换中,我们交换了 \(i,d\) 的求和顺序,更为具体的,我们可以写出

\[\sum_{d\in[1,n]\cap \mathbb{N}}\sum_{i=kd,\\k\in[1,\frac{n}{d}]\cap\mathbb{N}}\varphi(d)=\sum_{i\in [1,n]\cap\mathbb{N}}\sum_{d\mid i}\varphi(d) \]

可以显然的看出 \(A=C=[1,n]\cap\mathbb{N}\),而 \(B(i)\)\(i\) 映射到 \(i\)\(A\) 中的倍数,那么 \(B^\prime(i)\) 就应当映射了 \(i\) 的约数。

用莫比乌斯变换做一个更加困难的例子:

假如已知 \(f(n)=\sum\limits_{d\mid n}g(d)\)

那么

\[\begin{align*} \sum_{d\mid n}\mu(d)f(\frac{n}{d})&=\sum_{d\mid n}\mu(d)\sum_{d^\prime\mid\frac{n}{d}}g(d^\prime)\\ &=\sum_{d\mid n}\sum_{d^\prime\mid\frac{n}{d}}\mu(d)g(d^\prime)\\ &=\sum_{dd^\prime\mid n}\mu(d)g(d^\prime)\\ &=\sum_{d^\prime\mid n}\sum_{d\mid\frac{n}{d^\prime}}\mu(d)g(d^\prime)\\ &=\sum_{d^\prime\mid n}g(d^\prime)\sum_{d\mid\frac{n}{d^\prime}}\mu(d)\\ &=\sum_{d^\prime\mid n}g(d^\prime)[\frac{n}{d^\prime}=1]\\ &=g(n) \end{align*} \]

\(2\sim4\) 行的推导中,我们先把 \(\sum\limits_{d\mid n}\sum\limits_{d^\prime\mid\frac{n}{d}}\) 变为了 \(\sum\limits_{dd^\prime\mid n}\),然后再重新展开,就实现了交换求和号。

这启发我们

\[\sum_{i\in A}\sum_{j\in B(i\mid i\in A)}f(i,j)=\sum_{(i,j)\in A\times B(i\mid i\in A)}f(i,j) \]

交换求和号的实质就是

\[A\times B(i\mid i\in A)=D(j\mid j\in C)\times C \]

然后其实我们没有用到 \(+\) 的性质,所以把上面的 \(\sum\) 换成 \(\prod\) 之类的也是成立的。(需要满足分配率和结合律,推导不依赖 \(f\) 的性质)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_404215.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【k8s】(三) kubernetes 集群 YAML 文件详解

目录 一、YAML 文件概述 二、YAML 文件书写格式 2.1 YAML 介绍 2.2 YAML 基本语法 2.3 YAML 支持的数据结构 三、资源清单描述方法 3.1 资源清单描述方法 3.2 常用字段 四、如何快速编写一个yml文件 4.1 使用kubectl create命令 4.2 使用kubectl get 命令 一、YAML 文件…

【STM32】硬件资源及芯片介绍

以精英板STM32F103为例。STM32是Cortex M3架构,拥有更强劲的性能、更高的代码密度、位带操作、可嵌套中断、低成 本、低功耗等众多优势。 了解架构方面的知识可以查看以下文档: 《STM32 参考手册》中文版 V10.0《Cortex-M3 权威指南》中文版&#xff0…

【http代理】ProxyPool代码样例

1.此样例是私密代理简单IP池管理的实现2.requests不是python原生库,需要安装才能使用: pip install requests 3.支持Python2.7和Python3 #!/usr/bin/env python# -*- encoding: utf-8 -*-import timeimport randomimport threadingimport requestsclass ProxyPool():def __ini…

中国办公桌行业发展趋势及投资风险研究报告

智研瞻产业研究院专注于中国产业经济情报及研究,目前主要提供的产品和服务包括传统及新兴行业研究、商业计划书、可行性研究、市场调研、专题报告、定制报告等。涵盖文化体育、物流旅游、健康养老、生物医药、能源化工、装备制造、汽车电子、农林牧渔等领域&#xf…

docker本地私有库和harbor仓库

目录 docker仓库 一、docker私有仓库 Ⅰ、安装运行 Ⅱ、上传镜像 Ⅲ、拉取私有库镜像 二、harbor仓库 Ⅰ、前提需要 Ⅱ、创建证书文件 Ⅲ、下载安装harbor Ⅳ、harbor的管理 Ⅴ、浏览器访问管理 ①登录 报错 ②上传镜像 ③拉取镜像 docker仓库 仓库(…

Vue3 + ElementPlus 前端实现分片上传

目录 1. 什么是分片上传 2. 上传组件模板 3. 上传组件逻辑 3.1 基本思路 3.2 选择上传文件 3.3 校验文件是否合法 3.4 文件加密 3.5 合并文件 3.6 文件切片上传 4. 参考文章 4.1 文章链接 4.2 参考文章提到的注意事项 4.2.1 nginx 上传大小限制 4.2.2 大文件下载…

Excel中的HLOOKUP、VLOOKUP、XLOOKUP函数

昨天使用INDEX和MATCH两个EXCEL函数完成了表中数据的快速查找,想一想,EXCEL中还有另外的查找函数,比如HLOOKUP、VLOOKUP、LOOKUP、XLOOKUP函数,那使用它们能不能完成同样的操作呢?   可以的。   仍然是昨天的问题&…

window下,cuda版本和NVIDIA驱动版本关系,cuda版本 和 TensorFlow-GPU版本关系,TensorFlow-GPU安装

一、cuda安装,cuda 和 TensorFlow 版本对应,链接https://www.tensorflow.org/install/source#tested_source_configurations 1.查看自己安装的驱动版本, nvidia-smi 2.安装所需要的cuda,下载链接CUDA Toolkit Archive | NVIDIA Developer 找…

微信小程序云开发入门-数据库插入数据(包含批量)

一、前言 文章将介绍如何在微信小程序云开发中向云开发数据库插入数据(单条或批量)。 写法有好几种,文章将会一一进行对比,看看每种写法之间有何优缺点,如何让代码看起来更优雅。 为了更加贴合实际的开发逻辑&#xf…

Unity重启 --- 工具介绍部分 (面板与工具条)

第一部分 --- Project项目资源面板 1.两类常用文件 --- PNG图像文件和FBX文件(游戏模型文件) 2.每一个项目文件夹中都会自动创建一个资源Assets文件夹,我们各类美术资源,游戏脚本都是放在这个文件夹中的 3.在Unity中资源文件夹会…

操作系统实验三:死锁避免程序设计

银行家算法:Python模拟与实现一、实验目的二、实验内容三、实验要求四、实验代码结果展示全部代码一、实验目的 1、 理解死锁产生的基本原理,以及死锁的必要条件; 2、 掌握死锁避免的基本原理与思路。 二、实验内容 试利用银行家算法对死锁…

人工神经网络概念及组成,人工神经网络基本结构

1、简述人工神经网络的结构形式 神经网络有多种分类方式,例如,按网络性能可分为连续型与离散型网络,确定型与随机型网络:按网络拓扑结构可分为前向神经网络与反馈神经网络。本章土要简介前向神经网络、反馈神经网络和自组织特征映射神经网络…

postman使用excel参数批量执行

postman使用excel参数批量执行第一步,写好连接,报错。参数使用{{name}},这样的划分。保存接口第二步,找到runner。选择接口所在的文件夹,点击runner 第三步,选择接口和文件 点击run,运行,等待接口执行完成

百多安医疗冲刺科创板:半年营收1亿 为张海军与郭海宏夫妻店

雷递网 雷建平 10月20日山东百多安医疗器械股份有限公司(简称:“百多安医疗”)日前递交招股书,准备在科创板上市。百多安医疗计划募资7.6亿元,其中,2.64亿元用于医用导管产业化升级项目,2.48亿元…

《软件测试》实验2:嵌入式软件测试实验报告

文章目录实验目的温度控制器需求文档及测试要求环境搭建实验内容温度采集处理功能测试加热棒输出电压测试散热风扇温度传感器输入接口(Senser_JK)控制加热棒输出接口(Heater_JK)控制散热风扇输出接口(Fan_JK&#xff0…

《设计模式:可复用面向对象软件的基础》——结构型模式(2)(笔记)

文章目录四、结构型模式4.4 DECORATOR(装饰)——对象结构型模式1.意图2.别名补充部分3.动机4.适用性5.结构6.参与者7.协作8.效果9.实现10.代码示例11.相关模式4.5 FACADE(外观)1.意图2.动机3.适用性4.结构5.参与者6.协作7.效果8.实现9.代码示制10.相关模…

Postgresql中yacc语法树冲突解决方法(shift/reduce conflicts)

处理方法 Postgresql中的gram.y可以独立编译,独立编译可以控制bison的参数来打印具体错误: PG15 cd src/backend/parserbison -d -o gram.c gram.y -Wno-deprecated正常执行后会产生gram.c文件,一旦发生冲突,bison会报错&#…

设计模式—关于如何更好的封装与创建对象

上一节我们主要学习了使用设计模式来写代码的指导思想以及设计模式的分门别类,本节主要学习创建型的三种设计模式是怎么使用的。如何利用创建型设计模式来指导我们更好的封装代码更好的创建对象。 为什么要封装?封装能带给我们什么好处?定义变量不会污染外部:封装的首要目的…

神经网络图像识别技术,神经网络指纹识别

1、声纹识别技术未来的发展趋势如何? 近几年来,我国生物识别技术行业市场主体数量呈迅速增长的趋势,截至目前,行业企业数量超4000家。据统计,2013-2018年,我国生物识别技术行业新增企业数量呈逐年增长的趋…

【编程题】【Scratch四级】2022.06 成绩查询

成绩查询 期末考试结束了,小朋友想知道自己考试的成绩和班级排名,让我们一起来实现这个功能吧! 1. 准备工作 (1)保留默认白色背景和小猫角色; (2)创建名为“姓名”和“成绩”的列表,按照图1输入相关内容。 2. 功能实现 (1)点击小绿旗,小猫询问“你要查询谁的成…