Algoritmul Cornacci

Algoritmul Cornacci este un algoritm pentru rezolvarea unei ecuații diofantine , unde , și d și m sunt coprime . Algoritmul a fost descris în 1908 de Giuseppe Cornacci [1] .

Algoritm

Mai întâi găsim orice soluție . Dacă aceasta nu există, ecuația originală nu are soluții primitive. Fără pierderea generalității, putem presupune că (dacă nu este cazul, înlocuiți r 0 cu m - r 0 , care rămâne rădăcina lui - d ). Acum folosim algoritmul lui Euclid pentru a găsi , și așa mai departe. Ne oprim când . Dacă este un număr întreg, atunci soluția este . Altfel, nu există o soluție primitivă.

Pentru a găsi soluții neprimitive ( x , y ) unde gcd( x , y ) = g ≠ 1, rețineți că existența unei astfel de soluții implică faptul că g 2 împarte m (și, în mod echivalent, dacă m este fără pătrat , atunci toate solutiile sunt primitive). Apoi algoritmul de mai sus poate fi folosit pentru a găsi o soluție primitivă ( u , v ) a ecuației . Dacă se găsește o astfel de soluție, atunci ( gu , gv ) va fi soluția ecuației inițiale.

Exemplu

Rezolvăm ecuația . Rădăcina pătrată a lui −6 (mod 103) este 32 și 103 ≡ 7 (mod 32). Deoarece și , există o soluție x  = 7,  y  = 3.

Note

  1. Cornacchia, 1908 , p. 33–90.

Literatură

Link -uri

Basilla, Julius Magalona Despre algoritmul lui Cornacchia pentru rezolvarea ecuației diofantine (PDF) (12 mai 2004).