本文主要是介绍【数论·同余】扩展欧几里得Exgcd算法与线性同余方程求解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 扩展欧几里得算法Exgcd
- Exgcd算法内容
- Exgcd求解一组整数解
- Exgcd算法拓展
- Exgcd算法通解
- 线性同余方程
- 线性同余方程的一组解
- 线性同余方程的通解
- 线性同余方程的最小正整数解
- 小结
扩展欧几里得算法Exgcd
Exgcd算法内容
给定 a , b , c , d a,b,c,d a,b,c,d,求解 a x + b y = g c d ( a , b ) ax\ +by\ =\ gcd(a,b) ax +by = gcd(a,b)中的任意正数解 ( x , y ) (x,y) (x,y)
Exgcd求解一组整数解
我们可以根据裴蜀定理,证明方程一定有解。
由于欧几里得算法 g c d ( a , b ) = g c d ( b , a % b ) gcd(a,b)\ =\ gcd(b,a\ \%\ b) gcd(a,b) = gcd(b,a % b),则有:
a x + b y = b x + ( a % b ) ∗ y ax\ +by\ =bx\ +\ (a\ \%\ b)*y ax +by =bx + (a % b)∗y
用除法代替取模,则: a x + b y = b x ′ + y ′ ( a − [ a / b ] ∗ b ) ax\ +by\ =bx'+y'(a-[a/b]*b) ax +by =bx′+y′(a−[a/b]∗b)
通过乘法分配律和结合律的运算可得: a x + b y = a y ′ + b ( x ′ − [ a / b ] ∗ y ′ ) ax+by=ay'+b(x'-[a/b]*y') ax+by=ay′+b(x′−[a/b]∗y′)
其中, x ′ x'
这篇关于【数论·同余】扩展欧几里得Exgcd算法与线性同余方程求解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!