数论——扩展欧几里得
来源:互联网 发布:彩票合买系统源码 编辑:程序博客网 时间:2024/06/14 15:29
作为一个刚学数论的蒟蒻,看扩欧还是费了半天时间的……
先发一下一道exgcd的题叭qwq 同余方程
一开始看是不会正解的,,,真的是一点也没法跟扩欧联系在一起qwq。然后又重新找各种博客、题解,终于能把这两个东西联系在一起,,,
先看一下扩欧的定义:
扩展欧几里德算法是用来在已知a, b求解一组x,y,使它们满足贝祖等式: ax+by = gcd(a, b) =d(解一定存在,根据数论中的相关定理)。扩展欧几里德常用在求解模线性方程及方程组中。
对于不定整数方程pa+qb=c,若 c mod gcd(p, q)=0,则该方程存在整数解,否则不存在整数解。
什么意思呢?举个例子。假设要求 ax ≡ 1 (mod b),a=3,b=10。
这里c=1,所以gcd(p,q)=1。则3*p+q*y=1。
顺便插一下百度百科给出的递推过程解释:
至于求a的逆元a^{-1}
由定义知道aa^{-1}\ mod\ M=1
那就是求方程ax+My=1的解啦,套扩展欧几里得就可以了。
其他用法反正就是用来解长成这样的方程…
具体代码如下
#include<cstdio>#include<iostream>using namespace std;int a,b;int x,y,r,t;void exgcd(int a,int b){ if(b==0) { x=1,y=0; return; } exgcd(b,a%b); t=x; x=y; y=t-a/b*y; return;}int main(){ cin>>a>>b; exgcd(a,b); cout<<(x+b)%b; return 0;}
阅读全文
0 0
- 数论——扩展欧几里得
- 数论——扩展欧几里得算法
- 数论读书笔记——欧几里得和扩展欧几里得
- 数论——(扩展)欧几里得算法辨析
- 扩展欧几里得【数论
- 数论 + 扩展欧几里得
- 【数论】扩展欧几里得
- 【数论】扩展欧几里得算法
- 数论-扩展欧几里得算法
- 数论-扩展欧几里得算法
- 数论常用内容——欧几里得算法与扩展欧几里得算法
- 数论--欧几里得和扩展的欧几里得定理
- 欧几里得算法&&扩展欧几里得算法<数论>
- 【模板】【数论】扩展欧几里得算法
- poj 2142 数论 扩展欧几里得
- 数论学习之扩展欧几里得
- 数论 扩展欧几里得用法详解
- [ZLXOI2015]殉国 数论 扩展欧几里得
- Spring AOP支持的AspectJ语法
- 黑马视频第一节课笔记重敲
- java捕获异常示例
- http请求头详解and爬虫
- 创建Hello World图形界面
- 数论——扩展欧几里得
- Context的应用场景
- 剑指offer39 二叉树的深度
- 第四周 项目5- 循环双链表应用
- 字符串拷贝--strcpy的代码实现
- gulp实战(1)
- java 基础练习-编写敏感词过滤程序
- AB1601编译优化参数引发的问题
- c++关于类和对象的实例