首页 > 编程语言 >欧几里得算法

欧几里得算法

时间:2023-07-15 17:25:31浏览次数:39  
标签:gcd dfrac 欧几里得 mid 算法 引理 mod

算法

\(\gcd(a,b)=\gcd(b,a\mod b)\)。

整除的一些引理

\(a \mid b\),表示 \(b\) 能被 \(a\) 整除。

  • 当 \(a\mid b\) 且 \(b\mid a\) 时,\(a=\pm b\)。

  • 当 \(k \mid a, k\mid b\) 时,\(d\mid (ax+by)(x,y\in \mathbb Z)\)。

证明:
令 \(k=\gcd(a,b)\),则有 \(k \mid a,k \mid b\)。

而且我们知道 \(a \mod b = a-b\lfloor{\dfrac{a}{b}}\rfloor\)。

由引理二得知,\(k\mid(a\mod b)\),又因为 $k\mid b $

所以 \(k\mid \gcd(b,a\mod b)\)。

最后得到 \(\gcd(a,b)\mid\gcd(b,a\mod b)\)。

又令 \(d = \gcd(b,a\mod b)\)。

则有 \(d\mid b,d\mid(a\mod b)\)。

得到 \(d\mid(a-b\lfloor{a-\dfrac{a}{b}}\rfloor)\)。

所以 \(\gcd(b,a\mod b)\mid\gcd(a,b)\),又因为 \(\gcd(a,b)\mid\gcd(b,a\mod b)\)。

由引理一得知\(gcd(a,b)\pm\gcd(b,a\mod b)\)。

所以 \(gcd(a,b)=\gcd(b,a\mod b)\)。

标签:gcd,dfrac,欧几里得,mid,算法,引理,mod
From: https://www.cnblogs.com/pdpdzaa/p/17555918.html

相关文章

  • [TSG开发日志4]算法组件、个人编写的库文件如何封装成DLL,如何更好地对接软件开发?
    写在前面这个内容确实是我有点疏忽了,我以为做算法的同事应该多少对这方面会有点了解的。但是我想了一下我刚毕业的时候,确实对这方面的理解不深,查了很多资料才勉强搞懂什么意思,也是后来随着工程学习的愈加深入,才渐渐了解了在C++开发中动态链接库的重要性及如何编写。一般在说一个......
  • 马尔可夫算法
    马氏模型的含义马尔科夫链观察式子当P{En=i,En-1=in-1,...,}=p{En=i},n-1之前发生的事都和现在无关例子:转移概率矩阵练习:第3条说的是不管初始状态是什么只要j趋于无穷,最后极限与初始状态无关,极限趋于一个定值正则矩阵:1、方阵,2、逆矩阵存在例题:这道......
  • 字符串算法入门笔记
    zhx:什么AC自动机,KMP算法从来不会考zhx:不推荐用string,因为麻烦读ans入一个字符串chars[MAXN];cin>>s+1;//从s[1]开始读入,操作时方便在遍历字符串时,我们要先把字符串长度存下来,因为计算字符串长度的函数strlen的时间复杂度为\(O(长度)\),如果写成for(inti=1;i<=strlen(s+......
  • 代码随想录算法训练营第三十一天| 62.不同路径 63. 不同路径 II
    62.不同路径思路:因为只能向左,和向下,因此只能是前面的加上左边的,递推公式较为简单代码:1intuniquePaths(intm,intn){2if(m==1||n==1)return1;34vector<vector<int>>nums(m,vector<int>(n,1));56for(inti=1;i<m;i++......
  • 【算法】在各种排列组合下,计算零钱找零方式数量
    写一个函数,在给定一系列硬币面额的情况下,计算你可以用多少种不同的方式来兑换一笔钱。例如,如果你有面额为1和2的硬币,有3种方法可以为4找零:1+1+1+1,1+1+2,2+2。硬币的顺序无关紧要:1+1+2==2+1+1此外,假设你有无限数量的硬币。示例调用,一个金额和一系列独特面额的硬币:CountCombin......
  • 文心一言 VS 讯飞星火 VS chatgpt (59)-- 算法导论6.4 3题
    文心一言VS讯飞星火VSchatgpt(59)--算法导论6.43题三、对于一个按升序排列的包含n个元素的有序数组A来说,HEAPSORT的时间复杂度是多少?如果A是降序呢?文心一言:对于一个按升序排列的包含n个元素的有序数组A来说,HEAPSORT的时间复杂度是O(nlogn)。这是因为HEA......
  • 【算法】并查集学习笔记
    1.并查集简介1.1什么是并查集并查集是一种用于管理元素所属集合的数据结构,实现为一个森林,其中每棵树表示一个集合,树中的节点表示对应集合中的元素。并查集支持两种操作:1.合并(merge):合并两个数所属的集合(合并两个树);2.查询(find):查询两个数是否在同一个集合中(查询两个数所对......
  • 鸟类识别系统python+TensorFlow+Django网页界面+卷积网络算法+深度学习模型
    一、介绍鸟类识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Django框架,开发网页端操作平台,实现用户上传一张图片识别其名称。二、效果图片三、演示视频and代码视频+......
  • 大模型入门(七)—— RLHF中的PPO算法理解
    本文主要是结合PPO在大模型中RLHF微调中的应用来理解PPO算法。一、强化学习介绍1.1、基本要素环境的状态S:t时刻环境的状态$S_{t}$是环境状态集中某一个状态,以RLHF中为例,序列$w1,w2,w3$是当前的状态。个体的动作A:t时刻个体采取的动作$A_{t}$,给定序列$w1,w2,w3$,此时......
  • 算法-背包问题
    01背包问题dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+v[i]);(j>=w[i])一维化(由于递推关系i只和i-1有关,可进行空间压缩,遍历j时需要逆序遍历)for(inti=0;i<=n;i++){for(intj=target;j>=w[i];j--){dp[j]=max(dp[j],dp[j-w[i]]+v[i]);}}完全背包问题商品不限......