数论问题76一一容斥原理

容斥原理是一种计数方法,用于计算多个集合的并集中元素的个数,以避免重复计算。以下是其基本内容及相关公式:

 

两个集合的容斥原理

 若有集合A和集合B,那么A与B的并集中元素的个数等于A集合元素个数加上B集合元素个数,再减去A与B交集的元素个数,即|AUB| = |A|+|B|-|A∧ B|。

 

例如,一个班级中喜欢数学的有30人,喜欢语文的有25人,既喜欢数学又喜欢语文的有10人。那么喜欢数学或语文的人数为30 + 25-10=45人。

 

三个集合的容斥原理

 对于集合A、B、C,它们的并集中元素个数公式为|AUBUC|=|A|+|B|+|C|-|A∧ B|-|A∧ C|-|B∧ C| + |A∧ B∧ C|。

 

例如,在某学校的社团活动中,参加音乐社团的有50人,参加绘画社团的有40人,参加体育社团的有35人。同时参加音乐和绘画社团的有15人,同时参加音乐和体育社团的有10人,同时参加绘画和体育社团的有8人,三个社团都参加的有3人。则参加社团的总人数为50+40 + 35-15-10-8+3=95人。

 

可以把容斥原理推广到一般情况(略)。

 

容斥原理在组合数学、概率论、数论等领域都有广泛应用,比如在计算排列组合问题中满足特定条件的排列数,或在概率计算中求多个事件至少发生一个的概率等。

 

下面介绍容斥原理在自然数集中的应用一一欧拉函数φ(n)。符号φ(n)表示n以内的与n互质的自然数个数。

如,求10以内的与10互质的自然数(除0外)。

过程:{1,2,3,4,5,6,7,8,9,10}。因为10=2X5,被2整除的自然数个数有10÷2=5,与2互质的自然数个数为10(1-1/2)=5。被5整除的自然数有10÷5=2个,与5互质的自然数个数有10(1-1/5)=8。所以,同时与2和5都互质的自然数个数有10(1~1/2)(1-1/5)=4。即φ(10)=4。

把φ(n)可以推广到任意连续的n个自然数中,计算结果与n以内的与n互质的自然数个数是相同的。如{8,9,10,11,12,13,14,15,16,17},φ(1o)=4,即与10互质的数有9,11,13,17。

 

也可以把欧拉函数φ(n)推广到等差数列中,如奇数集A:{1,3,5,…,2n-1}。A中n个元素,与n互质的元素个数是φ(n)。

因为A中所有元素都与2互质,计算φ(n)时,先把n分解因数,化为质数幂之积的形式,由容斥原理再计算结果。如:φ(10),A中10个元素与10互质的元素{1,3,7,9,11,13,17,19},即φ(10)=10(1-1/5)=8。推广到任意连续的10个元素中,如(9,11,13,15,17,19,21,23,25,27}中与1θ互质的元素{9,11,13,17,19,21,23,27},即φ(10)=10(1-1/5)=8。

进一步,把欧拉函数应用到素数的存在数域,孪生素数的存在数域,和哥德巴赫猜想的存在数域中,能给n以内的素数个数的近似函数表示式,孪生素数个数的近似函数表示式和2n表两个素数之和的哥德巴赫猜想的“1+1“个数表示式。具体介绍如下

 

①素数个数的表示式

数域A:{1,2,3,…,n,n+1,…,m},其中,m=2x3x5…xp(连续素数之积),p为素数,p^2≤n,那么,A中与m互质的数个数为φ(m)=(2-1)(3-1)(5-1)…(p-1)。设A(n)表示n以内的与m互质的数的个数,即A(n)表示了n以内的素数个数(包含1,但不包含2,3,…,p的个数。由于A(n)/n≈φ(m)/m,所以,

A(n)≈n(1-1/2)(1-1/3)…(1-1/p)。

②孪生素数的个数表示式

设数域B:{(-1,1),(0,2),(1,3),…,(n-2,n),…,(m-2,m)},其中,m=2x3x5…xp(连续素数之积),p为素数,p^2≤n,那么,B中与m互质的元素个数为φ(m)=(2-1)(3-2)(5-2)…(p-2)。设B(n)表示n以内的与m互质的元素的个数,即B(n)表示了n以内的孪生素数个数(包含(-1,1)个数,但不包含与2,3,…,p的互质的元素个数,意义:p与元素互质,指p与元素中的两个数都互质)。由于B(n)/n≈φ(m)/m,所以,

 

B(n)≈n(1-1/2)(1-2/3)…(1-2/p)。

 

③哥德巴赫猜想的“1+1"个数表示式

 

设数域C:{(1,2n-1),(2,2n-2),(3,2n-3),…,(2n-n,n),…,(m,2n-m)},其中,m=2x3x5…xp(连续素数之积),p为素数,p^2≤2n,那么,C中与m互质的元素个数为φ(m)=(2-1)(3-r2)(5-r3)…(p-rt),其中,当p|2n时,rt=1;当p不整除2n时,rt=2。设C(2n)表示两素数之和的个数,但不包含p以内素数的“1+1″个数,,即C(2n)表示了C中n以内的(素数,素数)个数,包含(1,2n-1)为(1,素数)时的个数,但不包含与2,3,…,p的互质的元素个数(意义:p与元素互质,指p与元素中的两个数都互质)。由于C(2n)/n≈φ(m)/m,所以,

 

C(n)≈n(1-1/2)(1-r2/3)…(1-rt/p)。

 

欧拉函数还有许多应用,在筛除合数方面,应用欧拉函数,形成了固定的方法:欧拉函数筛法。欧拉函数筛法在筛取素数,孪生素数,哥德巴赫猜想的“1+1"方面,比埃氏筛法更为先进。如

100=1+99=2+98,筛去含2因子的和,得

100=1+99=3+97=5+95,再筛去含3因子的和,得

100=5+95=11+89=17+83=23+77=29+71,

筛去含5因子的和,得

100=11+89=17+83=23+77=29+71,

=41+59=47+53=53+47=59+41…,

筛去含7因子的和,得

100=11+89=17+83=29+71

=41+59=47+53。由于筛去100=3+97,于是

100=3+97=11+89=17+83=29+71

=41+59=47+53。

所以,100表两个素数之和的个数为6。(李扩继)

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

相关文章

python-decouple和 django-environ管理 Python/Django 项目中的环境变量

在现代软件开发中,环境变量的管理是一个至关重要的任务。环境变量通常用于存储敏感信息(如 API 密钥、数据库凭据)或配置信息(如调试模式、日志级别)。为了更安全、更方便地管理环境变量,Python 社区提供了许多工具,其中最流行的两个是 python-decouple 和 django-envir…

SimpleFOC STM32教程10|基于STM32F103+CubeMX,速度闭环控制(有电流环)

导言 SimpleFOC STM32教程09|基于STM32F103CubeMX,ADC采样相电流 如上图所示, 增加了电流环. 效果如下: 20250123-200906 RTT 如上图所示,三相占空比依然是马鞍波。当我用手去给电机施加阻力时,PID要维持目标转速&am…

基于蓝牙6.0的RSSI和UWB融合定位方法,可行性分析

融合RSSI(接收信号强度指示)和UWB(超宽带)两种技术进行蓝牙6.0定位是完全可行的,并且可以带来更高的定位精度和稳定性。本文给出分析和MATLAB仿真结果 文章目录 技术优势RSSIUWB融合的优势 实现方案数据融合算法硬件要…

团体程序设计天梯赛-练习集——L1-024 后天

前言 首先祝大家新年快乐,然后博主今点炮让炮崩了一下,水一天 这道题5分非常简单,有不少的做法 L1-024 后天 如果今天是星期三,后天就是星期五;如果今天是星期六,后天就是星期一。我们用数字1到7对应星期…

C#:25大前沿特性揭秘

一、引言 C#,这门诞生于 2000 年的编程语言,自问世以来便在软件开发领域留下了浓墨重彩的一笔。它是微软.NET 框架的旗舰语言,由安德斯・海尔斯伯格(Anders Hejlsberg)领导的团队精心打造 ,设计哲学融合了…

LeetCode100之全排列(46)--Java

1.问题描述 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案 示例1 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例2 输入:nums [0,1] 输出&#xf…

富文本 tinyMCE Vue2 组件使用简易教程

参考官方教程 TinyMCE Vue.js integration technical reference Vue2 项目需要使用 tinyMCE Vue2 组件(tinymce/tinymce-vue)的第 3 版 安装组件 npm install --save "tinymce/tinymce-vue^3" 编写组件调用 <template><Editorref"editor"v-m…

Babylon.js 中的 setHardwareScalingLevel和getHardwareScalingLevel:作用与配合修改内容

在 Babylon.js 中&#xff0c;Engine类提供了setHardwareScalingLevel和getHardwareScalingLevel方法&#xff0c;用于管理和调整渲染分辨率与屏幕分辨率的比例。这些方法在优化性能和提升画质方面非常有用。尤其是在某些平台不支持硬件反锯齿时&#xff0c;可以考虑使用setHar…

从理论到实践:Django 业务日志配置与优化指南

在现代 Web 开发中,日志记录是确保系统可维护性和可观测性的重要手段。通过合理的日志配置,我们可以快速定位问题、分析系统性能,并进行安全审计。本文将围绕 Django 框架,详细介绍如何配置和优化业务日志,确保开发环境和生产环境都能高效地记录和管理日志。 © ivwdc…

项目集成Nacos

文章目录 1.环境搭建1.创建模块 sunrays-common-cloud-nacos-starter2.目录结构3.pom.xml4.自动配置1.NacosAutoConfiguration.java2.spring.factories 5.引入cloud模块通用依赖 2.测试1.创建模块 sunrays-common-cloud-nacos-starter-demo2.目录结构3.pom.xml4.application.ym…

doris:JSON

JSON 数据类型&#xff0c;用二进制格式高效存储 JSON 数据&#xff0c;通过 JSON 函数访问其内部字段。 默认支持 1048576 字节&#xff08;1 MB&#xff09;&#xff0c;可调大到 2147483643 字节&#xff08;2 GB&#xff09;&#xff0c;可通过 BE 配置string_type_length…

K8S 启动探测、就绪探测、存活探测

先来思考一个问题&#xff1a; 在 Deployment 执行滚动更新 web 应用的时候&#xff0c;总会出现一段时间&#xff0c;Pod 对外提供网络访问&#xff0c;但是页面访问却发生404&#xff0c;这个问题要如何解决呢&#xff1f;学完今天的内容&#xff0c;相信你会有自己的答案。 …

开源 CSS 框架 Tailwind CSS v4.0

开源 CSS 框架 Tailwind CSS v4.0 于 1 月 22 日正式发布&#xff0c;除了显著提升性能、简化配置体验外&#xff0c;还增强了功能特性&#xff0c;具体如下1&#xff1a; 性能提升 采用全新的高性能引擎 Oxide&#xff0c;带来了构建速度的巨大飞跃&#xff1a; 全量构建速度…

YOLOv10 介绍

YOLOv10 是清华大学多媒体智能组推出的新一代目标检测算法。以下是它的一些主要信息: 主要特点与优势: 实时性与准确性并重:在保持高准确性的同时,实现了毫秒级的实时检测速度。通过引入大核卷积和部分自注意模块,在较低计算成本下实现了更高的性能。优化的模型架构: 主干…

基于物联网的智能环境监测系统(论文+源码)

1系统的功能及方案设计 本课题为基于物联网的智能环境监测系统的设计与实现&#xff0c;整个系统采用stm32f103单片机作为主控制器&#xff0c;通过DHT11传感器实现智能环境监测系统温度和湿度的检测&#xff0c;通过MQ传感器实现CO2浓度检测&#xff0c;通过光照传感器实现光照…

过年之无用知识研究:std::is_assignable means?

std::pair的默认operator被delete掉了&#xff0c;取而代之的是两个enable_if版本。 为什么这么设计&#xff0c;我的理解是pair作为左值时&#xff0c;里面的first如果是const&#xff0c;那么就不允许了。比如&#xff0c;在std::map里&#xff0c;已经保存的元素的key值是不…

978.最长湍流子数组

目录 题目过程解法收获 题目 给定一个整数数组 arr &#xff0c;返回 arr 的 最大湍流子数组的长度 。 如果比较符号在子数组中的每个相邻元素对之间翻转&#xff0c;则该子数组是 湍流子数组 。 更正式地来说&#xff0c;当 arr 的子数组 A[i], A[i1], …, A[j] 满足仅满足…

【愚公系列】《循序渐进Vue.js 3.x前端开发实践》030-自定义组件的插槽Mixin

标题详情作者简介愚公搬代码头衔华为云特约编辑&#xff0c;华为云云享专家&#xff0c;华为开发者专家&#xff0c;华为产品云测专家&#xff0c;CSDN博客专家&#xff0c;CSDN商业化专家&#xff0c;阿里云专家博主&#xff0c;阿里云签约作者&#xff0c;腾讯云优秀博主&…

学习第七十六行

提高github下载速度方法 1.github转码云 2.https://github.com.cnpmjs.org com后面加东西 对于面试笔试&#xff0c;最好方法刷力扣&#xff0c;1000题包进大厂的

leetcode刷题-贪心03

代码随想录贪心算法part03|134. 加油站、135. 分发糖果、860.柠檬水找零、406.根据身高重建队列 134. 加油站【太牛了】135. 分发糖果860.柠檬水找零406.根据身高重建队列 134. 加油站【太牛了】 leetcode题目链接 代码随想录文档讲解 思路&#xff1a; 两个数组&#xff1a; …