首页 > 其他分享 >整除与同余

整除与同余

时间:2025-01-17 12:11:31浏览次数:1  
标签:frac gcd 整数 ax 整除 同余 公因数

整除得到了扩展,于是便成了同余。

整除

定义及性质

若整数\(b\)除以非零整数\(a\),商为整数,且余数为零,\(b\)为被除数,\(a\)为除数,即\(a|b\)(“|”是整除符号),读作“\(a\)整除\(b\)”或“\(b\)能被\(a\)整除”。\(a\)叫做\(b\)的约数(或因数),\(b\)叫做\(a\)的倍数。整除属于除尽的一种特殊情况。

①若\(b|a\),\(c|a\),且\(b\)和\(c\)互质,则\(bc|a\)。
②对任意非零整数\(a\),\(±a|a=±1\)。
③若\(a|b\),\(b|a\),则\(|a|=|b|\)。
④如果\(a\)能被\(b\)整除,\(c\)是任意整数,那么积\(ac\)也能被\(b\)整除。
⑤对任意整数\(a,b>0\),存在唯一的数对\(q,r\),使\(a=bq+r\),其中\(0 ≤ r < b\)。带余除法定理,是整除理论的基础。
⑥若\(c|a\),\(c|b\),则称\(c\)是\(a,b\)的公因数。若\(d\)是\(a,b\)的公因数,\(d≥0\),且\(d\)可被\(a,b\)的任意公因数整除,则\(d\)是\(a,b\)的最大公因数。若\(a,b\)的最大公因数等于\(1\),则称\(a,b\)互素,也称互质。累次利用带余除法可以求出\(a,b\)的最大公因数,这种方法常称为辗转相除法。又称欧几里得算法
(百度百科)

欧几里德算法

用来求最大公因数(gcd),又称辗转相除法。
给定 \(a,b\in N\) ,有 \(\gcd(a,b)=\gcd(b,a\ \%\ b)\ (a\geq b)\) ,利用这个性质一直递归下去,直到 \(b'=0\) ,于是 \(a'\) 就是 \(a,b\) 的 gcd 了,因为 \(\gcd(a,0)=a\)。

裴蜀定理

\(\forall a,b \in Z\) ,一定有一组整数解使得 \(ax+by=\gcd(a,b)\)。
\(ax+by=\gcd(a,b)\) 有解 $\ \ \Leftrightarrow\ \ $ \(ax+by=m\ \ (\gcd(a,b)|m)\) 有解。
证明

扩展欧几里德算法(exgcd)

扩展欧几里得的用途
  1. 判断方程\(ax+by=m\)是否有解
  2. 求\(ax+by=m\)的任意一组解、通解、最小整数解
  3. 求逆元

我们现在需要求解方程 \(ax+by=\gcd(a,b)\) ,
首先 \(b=0\) 时显然有解 \(x=1,y=0\) ,
再来看 \(\gcd(a,b)=\gcd(b,a\ \%\ b)\) ,把 \(a\ \%\ b\) 拆开:

\[\gcd(a,b)=\gcd(b,a-\lfloor\frac{a}{b}\rfloor b) \]

再加入一点裴蜀定理:

\[\begin{aligned} ax+by &= \gcd(a,b) \\ &= \gcd(b,a-\lfloor\frac{a}{b}\rfloor b) \\ &= bx_0+(a-\lfloor\frac{a}{b}\rfloor b)y_0 \\ &= ay_0+b(x_0-\lfloor\frac{a}{b}\rfloor y_0) \\ \end{aligned} \]

\[\Rightarrow \begin{cases} x = y_0 \\ y = x_0-\lfloor\frac{a}{b}\rfloor y_0 \\ \end{cases} \]

我们发现 \(x,y\) 能递归向下求解,由辗转相除性质可知,总能递归到 \(b=0\) 的情况。
于是我们得到了方程 \(ax+by=\gcd(a,b)\) 的一组解。

现在来讲讲如何把这一过程作用在具体用途上:

  1. 判断方程\(ax+by=m\)是否有解:
    由裴蜀定理的充要性可知,若 \(\gcd(a,b)|m\) ,则方程一定有解,反之一定无解。

  2. 求\(ax+by=m\)的任意一组解、通解、最小整数解:
    首先保证 \(\gcd(a,b)|m\) ,求出 \(ax+by=\gcd(a,b)\) 的解再同乘即可。

  3. 求逆元:
    重中之重,吊打费马小求逆元。
    众所周知,使用费马小定理 \(a^{p-2}\equiv\frac{1}{a} \mod p\) 有两点限制: \(a \bot p\ ,\ p \in prime\)。
    扩展欧几里德求逆元只有一条限制:$a \bot p\ $。

    要求 \(a\) 在模 \(p\) 意义下的逆元 \(b\) ,有:
    \(\begin{aligned} &\ \ \ \ \ \ \frac{1}{a} \equiv b \mod p \\ &\Rightarrow ab \equiv 1 \mod p \\ &\Rightarrow ab = 1 + px \\ &\Rightarrow ab + (-p)x = 1 \\ \end{aligned}\)

    使用扩欧求解 \(b\) 即可。

同余

咕。

标签:frac,gcd,整数,ax,整除,同余,公因数
From: https://www.cnblogs.com/MoCy233/p/18676680

相关文章

  • 同余最短路
    顾名思义,建立在同余基础上的最短路。一般来讲,用于问凑数之类的问题时用,基本思想为若有\(ax=b\),求\(b\)的数量,则\(ax=b+kx\)均为可行解。1.跳楼机题目原址如果你现在能到达第\(i\)层,则\(i+kx\)层均可到达,所以我们考虑在对\(x\)取模的意义下建立多个点表示\(0-x\),从......
  • go语言:实现linear congruential generator线性同余发生器算法(附完整源码)
    go语言:实现linearcongruentialgenerator线性同余发生器算法代码说明:使用说明:线性同余发生器(LinearCongruentialGenerator,LCG)是一种常用的伪随机数生成算法。以下是用Go语言实现线性同余发生器的完整源码:packagemainimport( "fmt")//LCGstr......
  • 模p^k的同余方程和离散对数求解
    modularEquation考虑求解多项式同余方程f(x)=0......
  • 同余
    同余定义若整数\(a,b\)除以正整数\(m\)的余数相等,则称\(a,b\)模\(m\)同余,记为\(a\equivb(\bmodm)\)。同余类和剩余系对于\(\foralla\in[0,m-1]\),集合\(\{a+km\}(k\in\mathbb{Z})\)的所有数模\(m\)同余,余数都为\(a\),该集合成为一个模\(m\)......
  • 初等数论-03-解同余方程
    欧拉函数定义与\(m\)互素的剩余类的个数记为\(\varphi(m),\varphi(m)\)称之为欧拉函数关于欧拉函数的结论定理1:(欧拉定理)若\((k,m)=1,\)则:\(k^{\varphi(m)}\equiv1(\bmodm)\)$定理2:(费尔玛小定理)若\(p\)为素数,则对所有的整数\(a,a^{p}=a(\bmodm)\)$定......
  • 2024-12-14:K 周期字符串需要的最少操作次数。用go语言,给定一个长度为n的字符串 word
    2024-12-14:K周期字符串需要的最少操作次数。用go语言,给定一个长度为n的字符串word和一个整数k,k是n的因数。每次操作可以选择两个下标i和j,使得i和j都可以被k整除,然后用从j开始的长度为k的子串替换从i开始的长度为k的子串。要使得word成为一个K周期字符串,需要进行最少的操作次数......
  • 同余最短路
    同余最短路同余最短路可以用于解决形如"给定\(n\)个整数,求这\(n\)个整数能拼凑出多少的其他的整数(\(n\)个整数可以重复选取)"以及"给定\(n\)个整数,求这\(n\)个整数不能拼凑出的最小(最大)的整数",或者"至少要拼几次才能拼出模\(k\)余\(p\)的数的问题......
  • 区间同余问题
    区间同余问题例题:CF2050FMaximummoduloequality题意给定一个长度为\(n\)的序列\({a_n}\),有\(Q\)个询问,每次询问给定一个区间\([l,r]\),让你找一个最大的\(m\),使得区间内所有的\(a_i\modm\)相同,可以证明一定存在这样一个\(m\)(\(1\))。分析看着很头痛,因为完全不......
  • 890. 能被整除的数
    //890.能被整除的数.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。///*https://www.acwing.com/problem/content/892/给定一个整数n和m个不同的质数p1,p2,…,pm。请你求出1∼n中能被p1,p2,…,pm中的至少一个数整除的整数有多少个。输入格式第......
  • 浅谈同余最短路
    引入先介绍一下大家熟知的差分约束问题,通过建图将线性规划问题转化为图论问题。给定多个形如\(a_i-a_j\geqc_{i,j}\)的不定式,找出一种可行解。这种问题有一种很巧妙的构造方法,就是将这类问题抽象成一个图论问题来解决。具体来说,就是将不等式移项,变为\(a_i\geqa_j+c_......