首页 > 编程语言 >蓝桥杯数论通关系列(四)拓展欧几里得算法

蓝桥杯数论通关系列(四)拓展欧几里得算法

时间:2024-10-13 23:18:18浏览次数:3  
标签:a% gcd 欧几里得 整数 蓝桥 算法 公因数 通关

一.贝祖等式

给定a,b均为整数,一定存在一组整数x,y使得a,b满足a*x + b*y = gcd(a,b) = c。

而拓展欧几里得算法就是求出这组整数(x,y)的算法。

二.拓展欧几里得算法

首先先回顾一下欧几里得算法,欧几里得算法是计算两个数最大公因数的计算方法,如果要求gcd(a,b)的话,可以不断将其变为gcd(b,a%b),一直到b为0,此时的a就是最大公因数。用c表示gcd(a,b)的值,就可以写成gcd(c,0)。

我们不难发现,此时x和y的值是容易找的,即当x= 1,y=0时满足x*c+ y*0 = gcd(a,b) = c。那么我们可以从后向前推,假设已知一对(x,y)可以使得x*b+y*(a%b) = gcd(a,b),能否求得新的一对x,y使得a,b满足x*a + y*b = gcd(a,b)呢?

a%b可以表示为a-k*b(k=a/b)那么有x*a + y*(a-kb) = gcd(a,b),展开括号我们可以算出来有y*a + (x-ky)*b = gcd(a,b)。

代码如下:

a8810ba86b5a40909f46823d3e1baebf.jpg

 

 

 

 

 

 

 

 

标签:a%,gcd,欧几里得,整数,蓝桥,算法,公因数,通关
From: https://blog.csdn.net/2301_81317457/article/details/142900599

相关文章

  • 蓝桥杯刷题第一题:单词分析
    题目描述小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。现在,请你帮助小蓝,给了一个单词后,帮助他找......
  • 第十五届蓝桥杯C++B组省赛
    文章目录1.握手问题解题思路1(组合数学)解题思路2(暴力枚举)2.小球反弹做题思路3.好数算法思路(暴力解法)---不会超时4.R格式算法思路5.宝石组合算法思路---唯一分解定理6.数字接龙算法思路----DFS7.拔河算法思路1.握手问题题目描述:解题思路1(组合数学)按照题目描......
  • 【大模型书籍】24年一书通关LLM大模型,<大模型应用开发极简入门>蛇尾书来了
    大家好,今天给大家推荐一本大模型应用开发入门书籍《大模型应用开发极简入门》,本书对很多AI概念做了讲解和说明!朋友们如果有需要《大模型应用开发极简入门》,扫码获取~......
  • 蓝桥杯真题 穿越时空之门(第十五届蓝桥杯省赛PythonB组A题) c++题解
    问题如下(附链接):穿越时空之门题解代码如下:#include<iostream>usingnamespacestd;intx1(inti){inta=0;while(i){a+=i%2;i/=2;}returna;}intx2(inti){intb=0;while(i){b+=i%4;i/=4;}returnb;}intmain()......
  • 洛谷P10387 [蓝桥杯 2024 省 A] 训练士兵
    洛谷P10387[蓝桥杯2024省A]训练士兵1.Mysolution#include<stdio.h>#include<algorithm>#include<cmath>#include<iostream>#include<set>#include<string>#defineFor(i,j,n)for(inti=j;i<=n;++i)template&l......
  • E62 树形DP P8677 [蓝桥杯 2018 国 A] 采油
    视频链接:  P8677[蓝桥杯2018国A]采油-洛谷|计算机科学教育新生态(luogu.com.cn)//树形DP+贪心O(nlogn)#include<bits/stdc++.h>#defineN100010usingnamespacestd;vector<int>e[N];intn,B[N],S[N],f[N],len;structman{intb,s;};boolcmp(manx,......
  • 【题目解析】蓝桥杯23国赛C++中高级组 - 斗鱼养殖场
    【题目解析】蓝桥杯23国赛C++中高级组-斗鱼养殖场题目链接跳转:点击跳转前置知识:了解过基本的动态规划。熟练掌握二进制的位运算。题解思路这是一道典型的状压动态规划问题。设\(dp_{i,j}\)表示遍历到第\(i\)行的时候,当前行以\(j_{(base2)}\)的形式排列乌龟可以构......
  • 【蓝桥杯】“萌新首秀”全国高校新生编程排位赛3
    一、下一次生日题目下一次生日 题目分析闰年,四年一次,今年是闰年,那下一个闰年就是四年后代码#includeusingnamespacestd;intmain(){cout<<"2028";return0;}二、遗失的数字题目遗失的数字  题目分析用一个数组来记录数组A[N]出现的数字,如果......
  • sqli-labs通关全详解
    前言我们下面进行第一个漏洞——SQL注入的学习,SQL注入是十大漏洞之一,较为常见,算是Web安全入门必学漏洞。我们之前一直都以CTFHub为主线进行学习,但由于SQL注入细节较多,CTFHub的题目并不能深入学习。为探讨清楚SQL注入的诸多细节,我们特以经典的sqli-labs为支线进行从入门到进阶......
  • E61 树形DP P8744 [蓝桥杯 2021 省 A] 左孩子右兄弟
    视频链接:  P8744[蓝桥杯2021省A]左孩子右兄弟-洛谷|计算机科学教育新生态(luogu.com.cn)//树形DPO(n)#include<bits/stdc++.h>usingnamespacestd;constintN=100005;intn,f[N],son[N];inthead[N],idx;structE{intv,ne;}e[N<<1];voidadd(intu......