【数轮】数论、质数、最大公约数、菲蜀定理

数学

唯一分解定理

n>=2都可以表示为质因数的乘方。
令 n = a1b1a2b2 … \dots
a1,b1 … \dots 都是质因数,b1,b2 … \dots 是对应质因数的数量。

调和级数

1+1/2 + 1/3 +1/4 ⋯ \cdots 1/ n 约等于 logn。
证明过程:
1/3 + 1/4 < (1/2) × \times × 2 = 1
1/5 + 1/6 + 1/7 + 1/8 < (1/4) × \times × 4 = 1
1/9+1/10+…1/16 < (1/8) × \times × 8 = 1
⋮ \vdots
1/2^(m-1)+ ⋯ \cdots + 1/2m < 1

区间公约数

n个数,那些数对非互质。两两枚举,时间复杂度是O(nn)。
令这些数最大值为m,枚举那些数是x$\in[2,m]的倍数,则时间复杂度是O(nlogn)。
一,相同值如果大于1,非互质。
二,如果同时x>1的倍数,非互质。
转化成并集查找计算连通区域,注意:两个连通区域合并,只需要从2个联通区域任取一点相连。

质数

质数分解

x的质因数中最多有一个大于 x \sqrt x x 。反证法:如果有两个质因数大于 x \sqrt x x ,则它们相乘大于 x × x \sqrt x \times \sqrt x x ×x ,和所有质因数相乘等于x矛盾。
小于等于x的质因数可以直接枚举。如何寻找大于 x \sqrt x x 的质因数?
x 如果包括小于等于 x \sqrt x x 的质因数x1,则x ÷ \div ÷=x1。直到不包括小于等于 x \sqrt x x 的质因数。如果此时x>1,则此时的x也是质因数。

for (int i = 0; i < nums.size(); i++) {int tmp = nums[i];for (auto& iPri : vPrime) {if (iPri * iPri > tmp) { break; }if (0 == tmp % iPri) { indexs[iPri].emplace_back(i); }while ((0 == tmp % iPri)) {tmp /= iPri;}}if( tmp > 1){ indexs[tmp].emplace_back(i); }}

埃氏筛

如何寻找[1,m]所有质数。从2其,如果i是质数,则将i的x倍(x>1)标记位非质数。时间复杂度:O(nlogn),logn是调和级数的和。

vector<int> CreatePrime(int iMax)
{vector<int> vNo(iMax + 1);vector<int> vPrime;for (int i = 2; i <= iMax; i++){		if (!vNo[i]){vPrime.emplace_back(i);}for (const auto& n : vPrime){if( n * i > iMax ){break;}vNo[n * i] = true;}		}return vPrime;
}

欧拉筛(线性筛)

埃氏筛枚举了所有a × \times ×b,其中a是质数,b是任意数。
欧拉筛增加了新条件:a <= b的最小质因数,也就a 是 a × \times ×b 的最小质因数。因为任意数的最小质因数都只有一个,故不会重复。故时间复杂度:O(n)
以12为例:
埃氏筛枚举了2次,2 × \times × 6 ,3 × \times × 4。
欧拉筛:只枚举了 2 × \times × 6 。4 枚举完2后,就结束了。
在这里插入图片描述

代码

vector<int> CreatePrime(int iMax)
{vector<bool> isPrime(iMax + 1,true);vector<int> vPrime;for (int i = 2; i <= iMax; i++){if (isPrime[i]){vPrime.emplace_back(i);}for (const auto& n : vPrime){if (n * i > iMax){break;}isPrime[n * i] = false;if (0 == i % n) { break; }}}return vPrime;
}

最大公约数

gcc,vc都有gcd函数,可以直接使用。

辗转相减法

求a,b的最大公约数。如果a,b相等,则a就是公约数。下面只讨论两者不等。
不失一般性,令a > b,其最大公约数为q。a = a1q,b=b1q ,令a - b =(a1-b1)q =c1q= c。则q也是(c,b)的公约数。
我们用反证法来证明c,b没有大于q的公约数。假定c,b有大于q的公约数q1,则a = (b2+c2)q2 ,b = b2q2。a,b也有公约数q2,和a,b的最大公约数是q矛盾。
不断持续此过程,可以保持公约数不变的情况下,让max(a,b)变小。由于a>b,故c >= q。经过有限回合,c一定变成q,b变成q后,a每次也减少q,直到a也变成q。

辗转相除法(欧几里得)求最大公约数

( a , b ) → 不失一般性,令 a > = b ( c = a m o d b , d = b ) → 不失一般性,令 c > = d ( e = c m o d d , f = d ) ⋯ (a,b)^{不失一般性,令a >= b}_\rightarrow (c= a \mod b,d= b) ^{不失一般性,令c >= d}_\rightarrow (e=c \mod d,f=d) \cdots (a,b)不失一般性,令a>=b(c=amodb,d=b)不失一般性,令c>=d(e=cmodd,f=d)
直到最后的两个数一个为0,则公约数是另外一个。比如:e为0,最大公约数就是f。f为0,最大公约数为e。
a,b不断变小,有限次数一定有一个数变为0。
令某两个数的最大公约数为q, 则这两个数可以表示为 q × a , q × b 则 q × ( a m o d b ) , q × b 的最大公约数为 q 则这两个数可以表示为q \times a,q \times b 则 q \times (a \mod b) , q \times b 的最大公约数为q 则这两个数可以表示为q×a,q×bq×(amodb),q×b的最大公约数为q
a%b 为0,也符合数学定义: 0和任何数x的最大公约数是x。

二进制求公约数

求a,b的最大公约数。
一,如果a,b都是偶数,则GCD(a,b) = 2*GCD(a,b)。
二,如果a 是偶数,b是奇数(反之类似)。GCD(a,b)=GCD(a/2,b)。b是奇数,所以他们的公约数不包括2。
三,两者都是奇数。
3.1,两者相等。a就是最大公约数。
3.2,a b不等,不失一般性,令a>b。GCD(a,b) == GCD(a+b,b) == GCD((a+b)/2,b)
由于a,b是不断变小,一定会相等。

菲蜀定理

【数学归纳法 反证法】菲蜀定理

题解

质数判断、分解
【分解质因数 差分数组】2584. 分割数组使乘积互质
【状态机dp 状态压缩 分组】1994. 好子集的数目
【唯一分解定理 数学】1808好因子的最大数目
【单调栈】LeetCode:2818操作使得分最大
最大公约数
【栈 最小公倍数 最大公约数】2197. 替换数组中的非互质数
【最大公约数 排序】2344. 使数组可以被整除的最少删除次数
【二进制求公约数】【数学】【数论】2543. 判断一个点是否可以到达
【最大公约数】2862. 完全子集的最大元素和
区间最大公约数:调和级数o(nlogn)
【并集查找 最大公约数 调和数】952. 按公因数计算最大组件大小
【数论 最大公约数 调和数】【最大公约数】1819. 序列中不同最大公约数的数目
【最大公约数 调和级数】2183.统计可以被 K 整除的下标对数目
【调和级数 并集查找】1627. 带阈值的图连通性
【最大公约 调和奇数 并集查找】2709. 最大公约数遍历
菲蜀定理
【菲蜀定理 子序列】1250 检查「好数组」
唯一分解定理
【唯一分解定理】【动态规划】【前缀和】1735生成乘积数组的方案数
类似区间公约数
【动态规划】【前缀和】【分组】2338. 统计理想数组的数目

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

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

相关文章

Colab微调LLaMA3模型(大模型的微调)

Colab微调LLaMA3模型 1.使用的数据集 在hugging face上搜索 kigner/ruozhiba-llama3 使用的是弱智吧的数据 2.打开Colab 选择Gpu版本T2就可以了&#xff0c;然后下载unsloth这个微调框架&#xff0c;使用该框架的主要原因在于对硬件要求比较低。 在安装这个前先看一下本文…

css实现上下左右对勾选中状态角标

&#x1f365;左上角 &#x1f365;右上角 &#x1f365;左下角 &#x1f365;右下角: &#x1f365;左上角: .blueBackground {position: relative;border: 1px solid #91c7f3;background: #F0F8FF !important;&:after {content: "";position: absolute;top:…

黏土滤镜教程分享:让你的照片瞬间变身黏土艺术

在数字时代的浪潮中&#xff0c;手机摄影和修图软件成为了我们日常生活中不可或缺的一部分。而近期&#xff0c;一款名为“黏土滤镜”的修图功能火爆全网&#xff0c;让无数摄影爱好者和创意达人为之疯狂。本文将为你详细介绍几款拥有黏土滤镜功能的软件&#xff0c;并附上详细…

RiPro主题美化【支付弹窗底部提示语根据入口不同有不同的提示】ritheme主题美化RiProV2 增加支付提示语,按支付类型不同,入口不同提示语不同的设置

RiPro主题美化【支付弹窗底部提示语根据入口不同有不同的提示】ritheme主题美化RiProV2 增加支付提示语,按支付类型不同,入口不同提示语不同的设置 背景: 接上文:https://www.uu2id.com/827.html 付费组件在以下几个地方会弹出:1)文章隐藏内容付费;2)付费资源下载;3…

【R语言篇】医学生福音,全球疾病负担数据库GBD 2021即将更新!!!

今天介绍即将于5月16日更新的全球疾病负担数据库GBD 2021&#xff0c;相信数据一经发表&#xff0c;过不了多久pubmed又将涌现一大波疾病负担相关文章。 Global Burden of Disease Study 2021 (GBD 2021) Data Resources | GHDx 在查找GBD相关文献方面&#xff0c;我个人还是比…

Redis数据结构扩容源码分析

1 Redis数据结构 redis的数据存储在dict.中&#xff0c;其数据结构为(c源码) ypedef struct dict { dictType *type; //理解为面向对象思想&#xff0c;为支持不同的数据类型对应dictType抽象方法&#xff0c;不同的数据类型可以不同实现 void *privdata; //也可不同的数据类…

10个免费视频素材网站,剪辑师们赶紧收藏!

在快速发展的数字媒体时代&#xff0c;寻找高质量的视频和音频素材成为了多数内容创作者的日常需求。无论是企业宣传、个人创作还是社交媒体更新&#xff0c;优秀的素材不仅能增强视觉效果&#xff0c;还能提高信息传播效率。以下是一些优质的免费素材网站&#xff0c;它们提供…

Eduma – WordPress教育培训机构主题

下载地址&#xff1a;Eduma – WordPress教育培训机构主题 这个主题的设计理念是让你的教育和在线学习服务在最高水平上闪耀。Eduma具有多种功能&#xff0c;使其成为展示教育和在线学习服务的理想选择。 Eduma使用AJAX创建&#xff0c;这意味着在页面浏览过程中&#xff0c;页…

pdf 版面分析与优化策略

1. 简介 版面分析作为RAG的第一步工作&#xff0c;其效果对于下游工作至关重要。 前常见的 PDF 解析方法包括三种 基于规则&#xff1a;根据 PDF 的组织特征确定每个部分的规则&#xff08;风格和内容&#xff09;缺点&#xff1a;不通用&#xff08;PDF格式不固定&#xf…

GPT搜索引擎原型曝光!

OpenAI发布会前一天&#xff0c;员工集体发疯中……上演大型套娃行为艺术。 A&#xff1a;我为B的兴奋感到兴奋&#xff1b;B&#xff1a;我为C的兴奋感到兴奋……Z&#xff1a;我为这些升级感到兴奋 与此同时还有小动作不断&#xff0c;比如现在GPT-4的文字描述已不再是“最先…

618购物节适合入手的数码好物有哪些?实用闭眼冲的数码好物清单

随着618购物节的临近&#xff0c;数码爱好者们纷纷翘首以盼&#xff0c;期待着在这个年度大促中寻觅到心仪的数码好物&#xff0c;无论是提升工作效率的办公利器&#xff0c;还是丰富业余生活的娱乐设备&#xff0c;数码产品在我们的日常生活中扮演着越来越重要的角色&#xff…

电路板维修【三】

自恢复保险丝&#xff1a; 自恢复保险丝属于慢断类型保险丝&#xff0c;自恢复保险丝的材料因为通电后发热&#xff0c;当电流过大发热到一定程度的时候&#xff0c;材料就不导电了&#xff0c;这个和普通的保险丝是一个道理&#xff0c;只不过普通的保险丝是一次型熔断而已。…

【5月13日】YesPMP平台目前最新项目

YesPMP平台目前最新项目&#xff0c;有感兴趣的用户查看项目接单&#xff0c;与项目方沟通&#xff0c;双方直接对接。 1.查看项目&#xff1a;blender动画师 2查看项目&#xff1a;找宠友信息源码 3.查看项目&#xff1a;儿童…

ComfyUI 完全入门:必备插件

大家好&#xff0c;我是每天分享AI应用的萤火君&#xff01; ComfyUI 是一个基于 Stable Diffusion 的AI绘画创作工具&#xff0c;最近发展势头特别迅猛&#xff0c;但是 ComfyUI 的上手门槛有点高&#xff0c;用户需要对 Stable Diffusion 以及各种数字技术的原理有一定的了解…

【Web】CTFSHOW 月饼杯 题解(全)

目录 web1_此夜圆 web2_故人心 web3_莫负婵娟 web1_此夜圆 拿到源码&#xff0c;一眼字符串逃逸 本地测一测&#xff0c;成功弹出计算器 <?phpclass a {public $uname;public $password;public function __wakeup(){system(calc);} }function filter($string){retur…

全新Transformer模型:全球与局部双重突破!

DeepVisionary 每日深度学习前沿科技推送&顶会论文分享&#xff0c;与你一起了解前沿深度学习信息&#xff01; 引言&#xff1a;探索视觉变换器在对象重识别中的全局与局部特征 在对象重识别&#xff08;Re-ID&#xff09;的研究领域中&#xff0c;如何有效地从不同时间…

奇舞周刊第527期:​Virtual DOM(虚拟DOM) 的地位再一次被挑战 !!!

奇舞推荐 ■ ■ ■ Virtual DOM&#xff08;虚拟DOM&#xff09; 的地位再一次被挑战 &#xff01;&#xff01;&#xff01; 最近在前端圈有一个 Github Repo 算是蛮受关注的 - proposal-signals&#xff0c;这是一个由 Daniel Ehrenberg 为主导&#xff0c;向 TC39 提案的项目…

26版SPSS操作教程(高级教程第二十章)

目录 前言 粉丝及官方意见说明 第二十章一些学习笔记 第二十章一些操作方法 神经网络与支持向量机 人工神经网络&#xff08;artificial neural network&#xff0c;ANN&#xff09; 假设数据 具体操作 结果解释 对案例的进一步分析 结果解释 ​编辑 尝试将模型复…

自动驾驶技术与传感器数据处理

目录 自动驾驶总体架构 感知系统 决策系统 定位系统 ​计算平台​ 仿真平台​ 自动驾驶公开数据集 激光点云 点云表征方式 1) 原始点云 2) 三维点云体素化 3)深度图 4)鸟瞰图 点云检测障碍物的步骤 PCL点云库 车载毫米波雷达 车载相机 设备标定 自动驾驶…

Matlab如何导出高质量论文插图?科研效率UpUp第8期

当你用Matlab绘制了一张论文插图&#xff1a; 想要所见即所得&#xff0c;原封不动地将其保存下来&#xff0c;该怎么操作呢&#xff1f; 虽说以前总结过7种方法&#xff08;Matlab导出论文插图的7种方法&#xff09;&#xff0c;但要说哪一种可以满足上面的要求&#xff0c;想…