|
Orice congruen?? ax1+c?0 (mod b) se poate scrie ca o ecua?ie ax1+bx2+c=0 (în care a? 0), b?1 ?i c, x1, x2 sunt numere întregi. Dac? a, b, c sunt numere întregi date ?i x1 ?i x2 sunt considerate necunoscute, problema se reduce la g?sirea solu?iilor întregi ale unei ecua?ii liniare cu coeficien?i întregi. Daca f(x1,…, xn) este un polinom în x1,…, xn cu coeficien?i întregi, atunci ecua?ia f(x1,…, xn) = A se nume?te diofantic? dac? solu?iile ei sunt numere întregi. Denumirea acestor ecua?ii deriv? de la numele matematicianului grec Diofantos din Alexandria. Dac? o astfel de ecua?ie admite solu?ii, atunci ea admite o infinitate de n-upluri care o satisfac.
În continuare se va trata cazul n=2: ax+by=c
Dac? a ?i b sunt numere prime între ele ?i x0, y0 constituie o solu?ie pentru ax+by=c, atunci totalitatea solu?iilor se poate reprezenta sub forma: x= x0+bt, y= y0 –at, unde t este un num?r întreg oarecare. O solu?ie a ecua?iei se poate ob?ine cu ajutorul penultimei frac?ii de aproximare pentru reprezentarea sub form? de frac?ie continu? a lui a/b. Considerând c? penultima frac?ie este m/n, x0=nc, y0=-mc.
Exemplu:
Fie ecua?ia: 43x+19y=2.
Frac?iile de aproximare ale lui 43/19 sunt: 7/3, 9/4, 43/19.
Din frac?ia 9/4 se ob?ine x0=4*2=8, y0=-9*2=-18. Astfel, solu?ia general? se poate scrie de forma: x=8+19t ?i y=-18-43t, unde t este un num?r oarecare.
Implementare
Algoritmul de mai sus este valabil, dup? cum am precizat, în cazul când cele 2 numere a ?i b sunt prime între ele. Dac? dorim rezolvarea unei ecua?ii în care cele 2 numere nu sunt neap?rat prime între ele, se poate proceda în felul urm?tor: se calculeaz? cel mai mare divizor comun al lor (sigur este diferit de 1), iar apoi se evalueaz? dac? ecua?ie poate sau nu avea solu?ii, în func?ie de valoarea lui c. Dac? c este divizibil cu cmmdc-ul celor 2 numere, atunci se simplific? întreaga ecua?ie cu cmmdc ?i problema se reduce la cea prezentat? mai sus. Dac? c nu se împarte exact la cmmdc, atunci putem spune c? ecua?ia nu are solu?ii întregi.
|