首页 > 编程语言 >归纳法证明欧几里得算法

归纳法证明欧几里得算法

时间:2023-07-13 16:22:42浏览次数:28  
标签:1.6 int 欧几里得 exgcd 证明 算法 归纳法 定理 公因数

前言

    本证明思路来源于 《数学分析 Apostol》 定理 1.6

每一对非负整数a与b都有一个公因数d,形为

其中x和y都是整数,且a,b的每一个公因数都能整除这个d(显然这个d就是最大公因数)

证明

    设

    由对称性,不妨设

        Step.1

            当

            

        Step.2

            假设n=0,1,2,3,…,k-1时,定理已经证明

                n=a+b=k时

  1. b=0,则令 d=a,x=1,y=0,定理成立
  2. 综上 为a,b的公因数

                 设t为a,b的某一公因数

                

                n=k时,定理依旧成立

定理1.6证毕

代码

 

#include <iostream>
using namespace std;

void exgcd(int a, int b, int &x, int &y, int &d) {
  if (a < b)
    swap(a, b);
  if (b == 0) {
    d = a, x = 1, y = 0;
    return;
  } else {
    int _x, _y, _d;
    exgcd(a - b, b, _x, _y, _d);
    x = _x, d = _d, y = _y - _x;
  }
}

int main() {
  int x = 0, y = 0, d = 0;
  exgcd(20, 15, x, y, d);
  cout << x << ' ' << y << ' ' << d;
}

 

标签:1.6,int,欧几里得,exgcd,证明,算法,归纳法,定理,公因数
From: https://www.cnblogs.com/Icys/p/17551233.html

相关文章

  • 自动对焦算法
    自动对焦算法是相机系统中的重要组成部分,其作用是在拍摄图像时自动调整相机镜头使图像达到最清晰的效果。常见的自动对焦算法有:唯一对焦算法:通过对图像模糊程度的分析来确定对焦位置。基于距离的对焦算法:通过测量相机与物体之间的距离来确定对焦位置。基于梯度的对焦算法:通过......
  • python实现迪杰斯特拉算法
    Dijkstra算法可以计算出在有权图中从某个起点出发到其他任何一点的最短路径长度算法思想:迪杰斯特拉算法主要特点是从起始点开始,采用贪心算法的策略,每次遍历到始点距离最近且未访问过的顶点的邻接节点,直到扩展到终点为止。定义起点s,终点t,集合U表示还没有找到起点到该点的最短路......
  • 基于知识图谱的电影知识问答系统:训练TF-IDF 向量算法和朴素贝叶斯分类器、在 Neo4j 中
    基于知识图谱的电影知识问答系统:训练TF-IDF向量算法和朴素贝叶斯分类器、在Neo4j中查询1.项目介绍训练TF-IDF向量算法和朴素贝叶斯分类器,预测用户文本所属的问题类别使用分词库解析用户文本词性,提取关键词结合关键词与问题类别,在Neo4j中查询问题的答案通过Flask对......
  • Java虚拟机(JVM):第五幕:自动内存管理 - HotSpot算法细节以及低延迟垃圾收集器
    一、HotSpot算法细节1、根节点枚举:所有的收集器在根节点枚举的时候,必须暂停用户线程,同时要保证一致性的快照中得以进行。一致性:整个枚举期间执行子系统看起来就像是冻结在某一个时间点上,不会出现分析过程中,根节点的对象应用关系还在不断变化的情况。2、安全点:用户程序执......
  • 算法小菜鸟成长记录Day01-二分查找和双重指针
    二分查找和双重指针今天是代码随想录刷题的第一天,刚开始刷的时候昏昏欲睡,其中用时3h主要实现以下几个部分二分查找:其中二分查找中其收获最大部分就在于对左开右闭区间的理解,如果都是闭区间也就是【a,b】,那么在while中的条件就为while(left<=right),确保其中是拥有元素也就是......
  • 数学归纳法证明贪心实例
    1.选择不相交区间问题(具体见一本通提高篇P4)假设已经选择的区间是最优的方案的一部分,下面考虑如何选择会使方案达到最优。因为是按照结束时间升序排序的,如果我们不选择当前这一个合法的(设为A)而是去选择之后的合法的(设为B),那么无论最后的方案是怎样的,都可以将B换成A从而符合题意。......
  • 目标跟踪基础:数据关联算法
    本文来自公众号“AI大道理”—————— 数据关联是多目标跟踪任务中的关键步骤,其目的主要是为了进行帧与帧之间的多个目标的匹配。  ​ 添加图片注释,不超过140字(可选)1、数据关联数据关联其实就是一个沿着时间轴,将来自同一个物体......
  • 最长回文子串时间复杂度为O(n)的算法
    给你一个字符串s,找到s中最长的回文子串。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串示例1:输入:s="babad"输出:"bab"解释:"aba"同样是符合题意的答案。示例2:输入:s="cbbd"输出:"bb" 提示:1<=s.length<=1000s仅由数字和英文字母组成来源:力扣(LeetCo......
  • 手把手教你用 NebulaGraph AI 全家桶跑图算法
    前段时间NebulaGraph3.5.0发布,@whitewum吴老师建议我把前段时间NebulaGraph社区里开启的新项目ng_ai公开给大家。所以,就有了这个系列文章,本文是该系列的开篇之作。ng_ai是什么ng_ai的全名是:NebulagraphAISuite,顾名思义,它是在NebulaGraph之上跑算法的Python套......
  • 算法(施工中)
    解方程1,sympy中的solve解法1importsympy#引入解方程的专业模块sympy23p,q=sympy.symbols("pq")#申明未知数"p"和"q"45n=22307913740463468357754335486410675936913694858280706490751621413944761835651876543651318221114195124......