exgcd 学习笔记
最大公约数
- 更相减损术:\(\gcd(x,y)=\gcd(x,y-x)(x\leq y)\)。
证明:
设 \(\gcd(x,y)=k\),则 \(x=kp,y=kq,\gcd(p,q)=1\)。
那么 \(\gcd(x,y-x)=\gcd(kp,kq-kp)=k\times\gcd(p,q-p)\)。
设 \(\gcd(p,q-p)=r\),则 \(p=ra,q-p=rb\)。
那么 \(q=r(a+b)\)。
因为 \(\gcd(p,q)=1=\gcd(ra,r(a+b))\)。
所以 \(r=\gcd(a,a+b)=1,\gcd(x,y-x)=\gcd(x,y)=k\),得证。
- 辗转相除法(欧几里得算法):\(\gcd(x,y)=\gcd(y\bmod x,x)(x\leq y)\)。
取模相当于做多次减法,其实就是更相减损术的优化。
最小公倍数
容斥,两数之积除以两数的最大公约数。
小技巧:若数以质因数分解的形式给出,算最大公约数系数取 \(\min\),算最小公倍数系数取 \(\max\)。
拓展欧几里得算法
有不定方程 \(ax+by=\gcd(a,b)\),求出任意一个整数解(根据裴蜀定理,这东西一定有整数解)。
假设我们当前已经得出了方程
\]
的一组整数解 \(x=p,y=q\),根据 gcd 的性质有
\]
将取模拆掉
\]
\]
那么 \(x=q-\lfloor b/a\rfloor p,y=p\) 就是方程 \(ax+by=\gcd(a,b)\) 的一组整数解。
所以在求解 \(ax+by=\gcd(a,b)\) 时我们可以先递归求解 \(b\bmod a\times x+ay=\gcd(b\bmod a,a)\) 然后计算当前的解。
这个递归的终止条件是 \(a=0\),此时 \(x=0,y=1\) 是一组解,返回即可(虽然 \(x\) 取什么都没有关系但我们想让解的绝对值尽量小)。
Tips:通过 exgcd 求出的解的绝对值是小于等于系数的绝对值的最大值的(边界按上面写的),即 \(\max(|x|,|y|)\leq\max(|a|,|b|)\)。
具体证明我也不会,是蛙告诉我滴/qq,先鸽着以后再补。
exgcd 学习笔记的更多相关文章
- 扩展欧几里得算法(exGCD)学习笔记
@(学习笔记)[扩展欧几里得] 本以为自己学过一次的知识不会那么容易忘记, 但事实证明, 两个星期后的我就已经不会做扩展欧几里得了...所以还是写一下学习笔记吧 问题概述 求解: \[ax + by ...
- exgcd学习笔记
扩展欧几里得算法是当已知a和b时,求得一组x和y使得 首先,根据数论中的相关定理,解一定存在 //留坑待填 之后我们可以推一推式子 将a替换掉 展开括号 提出b,合并 且 设 现在已经将 ...
- bzoj1477 && exgcd学习笔记
exgcd 由于忘记了exgcd,这道题就没做出来... exgcd的用处是求ax+by=gcd(a,b)这样方程的解 大概是这个样子的 void ext_gcd(long long a, long ...
- 扩展中国剩余定理 exCRT 学习笔记
前言 由于 \(\{\mathrm{CRT}\}\subseteq\{\mathrm{exCRT}\}\),而且 CRT 又太抽象了,所以直接学 exCRT 了. 摘自 huyufeifei 博客 这 ...
- 数论算法 剩余系相关 学习笔记 (基础回顾,(ex)CRT,(ex)lucas,(ex)BSGS,原根与指标入门,高次剩余,Miller_Rabin+Pollard_Rho)
注:转载本文须标明出处. 原文链接https://www.cnblogs.com/zhouzhendong/p/Number-theory.html 数论算法 剩余系相关 学习笔记 (基础回顾,(ex ...
- exLucas学习笔记
exLucas学习笔记 Tags:数学 写下抛硬币和超能粒子炮改 洛谷模板代码如下 #include<iostream> #define ll long long using namesp ...
- OI数学 简单学习笔记
基本上只是整理了一下框架,具体的学习给出了个人认为比较好的博客的链接. PART1 数论部分 最大公约数 对于正整数x,y,最大的能同时整除它们的数称为最大公约数 常用的:\(lcm(x,y)=xy\ ...
- OI知识点|NOIP考点|省选考点|教程与学习笔记合集
点亮技能树行动-- 本篇blog按照分类将网上写的OI知识点归纳了一下,然后会附上蒟蒻我的学习笔记或者是我认为写的不错的专题博客qwqwqwq(好吧,其实已经咕咕咕了...) 基础算法 贪心 枚举 分 ...
- 「ExLucas」学习笔记
「ExLucas」学习笔记 前置芝士 中国剩余定理 \(CRT\) \(Lucas\) 定理 \(ExGCD\) 亿点点数学知识 给龙蝶打波广告 Lucas 定理 \(C^m_n = C^{m\% m ...
随机推荐
- A. Cubes Sorting 解析(思維)
Codeforce 1420 A. Cubes Sorting 解析(思維) 今天我們來看看CF1420 題目連結 題目 給一個數列\(a\),求能不能在不超過\(\frac{n(n-1)}{2}-1 ...
- 开发工具:Mybatis.Plus.插件三种方式的逆向工程
本文源码:GitHub·点这里 || GitEE·点这里 一.逆向工程简介 在Java开发中,持久层最常用的框架就是mybatis,该框架需要编写sql语句,mybatis官方提供逆向工程,可以把数据 ...
- Java学习的第五十六天
1.例11.5引用保护成员 public class Cjava { public static void main(String[]args) { Student1 s1=new Student1( ...
- Linux 系统编程 学习:07-基于socket的网络编程2:基于 UDP 的通信
Linux 系统编程 学习:07-基于socket的网络编程2:基于 UDP 的通信 背景 上一讲我们介绍了网络编程的一些概念.socket的网络编程的有关概念 这一讲我们来看UDP 通信. 知识 U ...
- Linux 网络编程的5种IO模型:异步IO模型
Linux 网络编程的5种IO模型:异步IO模型 资料已经整理好,但是还有未竟之业:复习多路复用epoll 阅读例程, 异步IO 函数实现 背景 上一讲< Linux 网络编程的5种IO模型:信 ...
- git提交后文件夹显示灰色无法打开的解决办法
上传完本地文件到gitee线上后发现如下情况,文件夹显示为灰色并且无法访问. xxx@xxx 的灰色文件 问题原因 : 无法点击的灰色文件夹中含有 .git 文件 即在本地初始化的仓库(使用 git ...
- php的三元运算符
简单记录一哈php的三元运算符的用法: 啥子是三元运算,即第一个表达式作为判断条件,在后面两个表达式中选择一个执行. 若判断成立,则执行第二个表达式,否则执行第三个表达式. 看到好多网友都说的不 ...
- Servlet学习笔记(二)
目录 Servlet学习笔记(二) Request对象 1.request和response对象: 2.request对象继承体系结构: 3.什么是HttpServletRequest ? 4.Htt ...
- 9_Palindrome Number
9.Palindrome Number Determine whether an integer is a palindrome. An integer is a palindrome when it ...
- Android Google官方文档解析之——Device Compatibility
Android is designed to run on many different types of devices, from phones to tablets and television ...