Теория чисел Введение Глава 8 конгруэнции

Теория чисел Введение Глава 8 конгруэнции

Мы обсудим, как решить конгруэнтность $ ах \ эквив с (тойт) $

Очевидно , что это определяется , является ли или нет разрешима конгруэнтностью определения линейного уравнения , эквивалентной \ (Ax-моего = с \ ) является ли разрешим

Мы уважаем \ (ах + Ьу = с \ ) тип линейных уравнений , если и только если \ (НОД (а, Ь) | с \) , когда разрешимость

Может быть решено путем следующих кодов для решения (развернуть Евклид)

//ax+by = gcd(a,b)
long long extend_gcd(long long a,long long b,long long &x,long long &y)
{
    if(a==0&&b==0) return -1;
    if(b==0) {x = 1; y = 0; return a;}
    long long d = extend_gcd(b,a%b,y,x);
    y -= a/b*x;
    return d;
}

Набор \ (г = НОД (а, т) \) , то

  • Если не делится на г С Это уравнение не имеет решения
  • Если \ (г \ середина с \) в точности формулы она модифицирована с различными растворами г

Примечание: Наиболее важный случай является линейной конгруэнции уравнения \ (НОД (а, т) = 1 \) В этом случае, то же ниже точно одно решение формулы I

В это время, и с = 1, называются к й м от обратного элемента

Ищу обратный следующим образом:

long long extend_gcd(long long a,long long b,long long &x,long long &y)
{
    if(a==0&&b==0) return -1;
    if(b==0) {x = 1; y = 0; return a;}
    long long d = extend_gcd(b,a%b,y,x);
    y -= a/b*x;
    return d;
}
ll getInv(int a,int mod)
{
    ll x,y;
    ll d=extend_gcd(a,mod,x,y);
    return d==1?(x%mod+mod)%mod:-1;
}

рекомендация

отwww.cnblogs.com/pot-a-to/p/10963174.html