欧几里得与扩欧

简介: 笔记

欧几里得算法


14.png


裴蜀定理


对于给定的正整数a,b方程ax+by=c有解的充要条件为c是gcd(a,b)的整数倍


扩展欧几里得


15.png

#include<iostream>
#include<algorithm>
using namespace std;
int exgcd(int a,int b,int &x,int &y){
    if(!b){
        x = 1,y =0;
        return a;
    }
    int d = exgcd(b,a % b,y,x);
    y -= a / b * x;
    return d;
}
int main(){
    int t;cin >> t;
    while(t--){
        int a, b, x, y;
        cin >> a >> b;
        exgcd(a,b,x,y);
        cout << x << " " << y << endl;
    }
    return 0;
}


①求逆元


前提:g c d ( a , b ) = 1


逆元的定义:若a ∗ x ≡ 1 ( m o d    b ) 且a与b互质,那么x为a的逆元


上式可以变形成为:a∗x=by+1 ⇨a ∗ x + b ∗ y = 1 所以通过exgcd(a,b,x,y)求出的x即为a的乘法逆元


②求线性同余方程

16.png

目录
相关文章
五种常用距离的代码实现:欧式距离、曼哈顿距离、闵可夫斯基距离、余弦相似度、杰卡德距离
五种常用距离的代码实现:欧式距离、曼哈顿距离、闵可夫斯基距离、余弦相似度、杰卡德距离
|
1月前
|
机器学习/深度学习 传感器 算法
【机器学习】在聚类算法中,使用曼哈顿距离和使用欧式距离有什么区别?
【5月更文挑战第12天】【机器学习】在聚类算法中,使用曼哈顿距离和使用欧式距离有什么区别?
|
22天前
高等数学II-知识点(3)——广义积分、定积分几何应用、定积分求曲线弧长、常微分方程、可分离变量的微分方程、一阶微分方程-齐次方程、一阶线性微分方程
高等数学II-知识点(3)——广义积分、定积分几何应用、定积分求曲线弧长、常微分方程、可分离变量的微分方程、一阶微分方程-齐次方程、一阶线性微分方程
12 0
|
1月前
|
算法
欧几里得
欧几里得
18 4
|
11月前
7.6 曲面及其方程
7.6 曲面及其方程
59 0
|
机器学习/深度学习 搜索推荐 数据挖掘
常见的几种距离量度(欧式距离、曼哈顿距离、切比雪夫距离等)
在机器学习和数据挖掘中,我们经常需要计算样本之间的相似度,通常的做法是计算样本之间的距离。本文介绍几种常用的距离量度方法。
486 0