グループ合同方程式を改善するためNOIP 2012

合同:数論における重要な概念。正の整数mが与えられると、二つの整数A及びB満たす(AB)mで分割することができる、すなわち、(A-B)/ mは整数を取得する場合、

次に、整数a及びbは合同モジュロM、示さa≡b(MOD M)であると述べました。合同モジュロMは同値関係の整数です。

同じ残り、2回の整数合同している場合、2つの整数と数学的に合同は、整数で割りました。

二つの整数、それらが整数Mを分割することにより得られ、bは、Iに等しく、a及びbは合同モジュロMまたはBのモジュロMに一致するために呼び出されます

a≡b(MOD M)と称します

BのM、AとBと合同型として読み取る、又は合同モジュロMを読み込みます。

例えば26≡2(MOD 12)

(AB&)、AおよびBで示さa≡b(MOD M)、合同モジュロMと呼ばれる、とが読み出され| M提供される定義は、Mがあれば、bは、整数であり、1以上の正の整数大きいですB合同モジュロM。

明らかに、その事実があります

(1)もしa≡0(MOD M)、M |。

(2)a≡b(MOD m)はm個のBに相当する同一の残りによって除去されます。

[証明]

充足:M |(AB) - >a≡b(MODメートル)

= MQ1 + R1を設定し、B = MQ2 + R2

そして0≤r1、R2 <M

∵M |(AB)

およびAB = M(Q1-Q2)+(R1-R2)。

∴nが一定でなければならないので、(R1-R2)= MN

(R1-R2)| mがあります。

∵0≤r1、R2 <M、

∴0≤| R1-R2 | <M

∴r1-R2 = 0

すなわち、R1 = R2。

従ってa≡b(MOD M)。

必要性:a≡b(MODメートル) - > M |(AB)

B、設定、残りはm個のRにより除去し、

= MQ1 + R、B = MQ2 + Rを即。

∵ab= M(Q1-Q2)

∴m|(AB)。

自然の合同は、主に以下のいくつかでは、より多くなります。

同じ除数と、2つの数(又は差)が残り、及び(又は差)合同数の1。

同じ除数2.、2つの数の積と、彼らは合同の数の積以上です。

同じ除数3.合同な二つの整数が存在する場合、それらは確かにこの除数割り切れるとの違いになります。

二つの数の合同場合、同じ除数4.は、その後、彼らの力は同じではありません。

アプリケーションの合同:

例:13で割った余りを求めて2001 ^ 2003

合同プロパティ4によれば、我々は^2003≡12^ 2003 2001(13 MOD)(2001と同じ金型13以上12)ことを結論付けることができます

^ 2003年12はその後、我々は13が合同で1〜12平方型を用いて数回を見つけるだろう、13で割って見つけることは困難である、まだ多数あります。

試験は、(13 MOD)^2≡112を引き出すことができます

我々1001×12 ^1≡1×12≡12(MOD 13)^ 2003 ^ 12(12 ^ 2)に1001×12 ^ 1、及び(12 ^ 2)^を分割しました

この時点で、我々は13で割っ^ 2003 2001の残りは12で描くことができ、私たちは電卓を使って計算し、その答えは正しいです。

数論では、線形合同式は合同の基礎方程式である、「リニアは」未知の方程式の数がこのように、一度であることを示します。

ax≡b(mod n)を計算式。最大公約数の分割は、Bおよびnである場合のみとする場合は、この式は解を有する(GCDとして(Nと称する)| B)。

x0が方程式の解であり、この場合、すべての溶液は、以下のように表すことができます。

{X0 + KN / D | (k∈z)}

前記a及びdは、nの最大公約数です。完全モジュロN {0,1、...、N-1}の残りの行は、厳密解を日間。

線形合同方程式AX≡B(mod n)を計算する(1)のために

D = GCD(n)の場合、Bで割っD、次にB / Dは、整数です。AR + SN = Dユークリッド使用することができる整数の定理によって集ペイ(R、S)

したがって、X0 = RB / Dは、式(1)の溶液です。他のソリューションは、n / dおよびX合同についてです。即ちx≡x0+(N / D)* T(mod n)を計算する(0≤t≤d-1)。

例えば、Dが式12X≡20(MOD 28)= GCD(12,28)= 4。

注(-2)281 4 = 12、従ってx0≡5*( - 2)≡-10≡4(MOD 7)の解です。

モジュロ28、T = 1、x≡4+(4分の28)*1≡11(28 MOD)。

       t=2,x≡4+(28/4)*2≡18 (mod 28);

   t=3,x≡4+(28/4)*3≡25 (mod 28) 。

すべての溶液は、{4,11,18,25}です。

X 1(MOD b)の溶液に対して最小の正の整数AX≡合同式を求めます。

すなわちAX = MBを求める+ R 1 = NB + R

= GCD(a、b)は、(Yに対応nm)とすることにより、アプリケーション斧+ユークリッドこの式を拡張変形AX +(NM)B = 1、すなわち、

実際xolution斧≡1(MOD b)はGCDされる(B)| 1、すなわちGCD(A、B)= 1。

= 1(x、整数y)でユークリッド膨張斧+を用いて見出さ

拡張ユークリッドの定理

ユークリッドの定理を拡張:機能不全のための2つは0の整数、bは、==のGCD(b)で解xの集合、Y、ように斧+が存在しなければなりません。

ユークリッド拡大を図るには、以下のプログラム、xとyは、グローバル変数に保存されます

GCD整数(INTのA、int型B)
{
int型のT、D、
IF(B == 0)
{
X = 1;
Y = 0;
//ケースb == 0は、すなわちGCD(0)= =。元の式になる= ==によって+ AX GCD(A、B) - > 1 == X、Y == 0。
戻りA; //戻り、最大公約数のB値
}
D = GCD(B、 %B); //ユークリッド最大公約数使用
T = Xを、
X = Y;
Y = T-(A / B)* Y; // 2で未知の
リターンD; //は、Bを返します値GCD
}
// 2 ==のGCD(によって未知の斧+について説明 B)(1)
ルールの説明において、x、yは最初の再帰の値を表し、X1、Y1は、第二の再帰を示し値。

次いでGCD(A、B)== GCD(B、%b)は、同時に、式1に代入して、

==のBX1 +(%b)はY1だけあり斧+。適切な外観の変形

BX1 +(%b)はY1 == BX1 +(A-(a / b)がb)のY1 == AY1 + B(X1-(/ b)のY1)、

== AY1 + B(X1-(/ B)* Y1)で最終的に得られた斧+

言い換えれば:

次の深さx Y1に等しい深さに、

次X1-(A / B)に等しい深さ* Y1にY深。

分周器の上記導出を使用する場合*なお、整数除算であります

したがって、溶液== GCD(b)は、X、Yの組によって不定詞斧+を得ました。

だから、== Cによる平均不定詞斧+のために、解決策は、それがどうあるべきかです。

非常に単純な、X1 = X (C / GCD(A、B))、Y1 = Y(C / GCD(A、B))

少し深いので、実際には解の集合を解決するために、一般的に、すべての問題を解決されていません

私たちは今、それが何であるか、このソリューションのすべて、その後、ソリューションのすべてを取得したいですか?

仮定D = GCD(A、B)= X0 + Bその後、X / D. T; Y = YO-A / Dの T、Tは任意の定数整数です。

コードは以下の通りであります:

#include<stdio.h>
int  Extragcd(int a,int b,int *x,int *y)
{
    int d,t;
    if(b==0)  //递归调用终止条件,当根据欧几里得辗转相除法则,余数为0停止
    {
        *x=1;
        *y=0;
        return a;
    }
    else
    {
        d=Extragcd(b,a%b,x,y);
        t=*x;                  //根据下一个x1,y1的值,倒推前一个x,y的值
        *x=*y;
        *y=t-a/b*(*y);
        return d;
    }
}
int main()
{
    int a,b,x,y;
    int ans;
    scanf("%d%d",&a,&b);
    ans=Extragcd(a,b,&x,&y);   //同余方程 ax ≡1 (mod b) 有解的充分条件是 gcd(a,b)==1
    if(ans!=1) return 0;
                              //根据若x是方程的一个解,则方程的所有解为x+k*b k为整数
    x=x%b;                    //保证最小的正整数解x ,且x属于{0,1,2,3...b-1}
    while(x<=0)
        x+=b ;
    printf("%d\n",x);
    return 0;
}

おすすめ

転載: www.cnblogs.com/zi-nai-boboyang/p/11519409.html