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

扩展欧几里得算法

时间:2023-12-02 20:56:48浏览次数:35  
标签:frac gcd 欧几里得 扩展 算法 ax 正整数 mod

同余方程

\(ax\equiv b(\mod m)\)

二元一次方程

\(ax+by=c\),其中\(a,b,c\)为已知的正整数

这两者可以相互转化,显然对于这个二元一次方程,有:
\(ax\mod b=c \mod b\),可以转化为\(ax\equiv c(mod b)\)

裴蜀定理

当我们考虑一个二元一次方程解的情况,我们发现:

  • 1.可能无解
  • 2.有解即有无数个解

所以问题转化为判断是否有解,所以出现了裴蜀定理:

设\(a,b\)为正整数,则\(ax+by=c\)有正整数解,当且仅当\(c\)是\(gcd(a,b)\)的倍数,注意 \(c\) 不需要是正整数。

辗转相除法

求 \(gcd(a,b)\) 的方法:
\(gcd(a,b)=gcd(b,a \mod b)\)。

扩展欧几里得算法:

扩展欧几里得算法致力于进一步找到解

    1. 裴蜀定理判无解;
    1. 若有解,先求方程 \(ax + by = \gcd (a, b)\) 的解,则原方程的一个解为 \(x = x \times \frac{c}{\gcd (a, b)}\);
    1. 递归求最大公约数,并利用,\(x = y_1, y = x_1 - \lfloor \frac{a}{b} \rfloor y_1\)。

如何求解:

  1. \(ax + by = c\)。
  2. \(bx_1 + (a - b \times \lfloor \frac{a}{b} \rfloor )y_1\)。
  3. \(ay_1 + b(x_1 - \lfloor \frac{a}{b} \rfloor y_1)\)。

这样 \(x, y\) 与 \(x_1, y_1\) 就有关联了。

标签:frac,gcd,欧几里得,扩展,算法,ax,正整数,mod
From: https://www.cnblogs.com/wangwenhan/p/17872204.html

相关文章

  • C# 面试常见递归算法
    前言今天我们主要总结一下C#面试中常见递归算法。C#递归算法计算阶乘的方法一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。原理:亦即n!=1×2×3×...×(n-1)×n。阶乘亦可以递归方式定......
  • 算法之快速排序1初始(java)
    一:概述快速排序、归并排序、堆排序等都是比冒泡排序更快的算法。其中快速排序是从冒泡排序演变而来。快速排序之所以比冒泡排序要快是因为它用了分治法。    二:具体说明同冒泡排序一样,快速排序也属于交换排序,通过元素之间的比较进行比较和交换位置来达到排序的目的。不同的是......
  • 【算法 Java】递归,阶乘的递归实现,斐波那契数列的递归实现
    递归定义:方法直接或间接地调用方法本身思路:将大问题转化为一个与原问题相似的规模更小的问题注意:递归死循环会导致栈内存溢出一些使用递归求解的问题阶乘Factorial.javaimportjava.util.Scanner;publicclassFactorial{publicstaticvoidmain(String[]args)......
  • 【教3妹学编程-算法题】统计子串中的唯一字符
    3妹:“太阳当空照,花儿对我笑,小鸟说早早早,你为什么背上炸药包”2哥 :3妹,什么事呀这么开发。3妹:2哥你看今天的天气多好啊,阳光明媚、万里无云、秋高气爽,适合秋游。2哥:是啊,立冬之后天气多以多云为主,好不容易艳阳高照。可是你不能秋游,赶紧收拾收拾上班去啦3妹:哼,好吧~2哥:给你出了一道题......
  • K最近邻算法
    汉堡店销售量预测某汉堡店每天都会做新鲜的汉堡,每天卖出的汉堡个数与天气等因素有关。请根据如下几个特征,用KNN算法预测当天售卖汉堡的个数。(1)天气指数1~5:1表示天气很差,5表示天气很好。(2)是否是周末:周末为1,否则为0。(3)是否有打折活动:1表示有打折,0表示没有打折。售出汉堡的历史数据表......
  • 二分图最大匹配模板(匈牙利算法)
    二分图最大匹配模板(匈牙利算法)P3386【模板】二分图最大匹配-洛谷|计算机科学教育新生态(luogu.com.cn)structaugment_path{ vector<vector<int>>g; vector<int>pa;//匹配 vector<int>pb; vector<int>vis;//访问 intn,m;//两个点集中的顶......
  • 高斯混合模型:GMM和期望最大化算法的理论和代码实现
    高斯混合模型(gmm)是将数据表示为高斯(正态)分布的混合的统计模型。这些模型可用于识别数据集中的组,并捕获数据分布的复杂、多模态结构。gmm可用于各种机器学习应用,包括聚类、密度估计和模式识别。在本文中,将首先探讨混合模型,重点是高斯混合模型及其基本原理。然后将研究如何使......
  • 51k+ Star!动画图解、一键运行的数据结构与算法教程!
    大家好,我是Java陈序员。我们都知道,《数据结构与算法》——是程序员的必修课。无论是使用什么编程语音,亦或者是前后端开发,都需要修好《数据结构与算法》这门课!在各个互联网大产的面试中,对数据结构和算法的考核乐此不疲。往往《数据结构与算法》学得好的,都能拿到高薪!但是《数......
  • 代码随想录算法训练营第三天 | 203.移除链表元素 707.设计链表 206.反转链表
    LeetCode 203.移除链表元素视频链接:LeetCode203思路:根据链表的性质,将目标值对应的节点保存在一个临时节点中,再重新设置cur下一个节点,再将临时节点进行删除classSolution{public:ListNode*removeElements(ListNode*head,intval){//删除头节点......
  • 【POJ 1144】Network 题解(Tarjan算法求无向图的割点)
    一家电话线公司(TLC)正在建立一个新的电话电缆网络。它们连接由1到N的整数编号的几个位置。没有两个地方的数字相同。这些线路是双向的,总是连接在两个地方,在每一个地方,线路都以电话交换机结束。每个地方都有一个电话交换机。从每个地方可以通过其他地方的线路到达,但不需要直接连接,可......