Cornacchias algoritm

I beräkningstalteorin är Cornacchias algoritm en algoritm för att lösa den diofantiska ekvationen , där och d och m är coprime . Algoritmen beskrevs 1908 av Giuseppe Cornacchia.

Algoritmen

Hitta först valfri lösning på kanske genom att använda en algoritm som listas här ); om det inte finns någon sådan kan det inte finnas någon primitiv lösning på den ursprungliga ekvationen. Utan förlust av generalitet kan vi anta att 0 r m / 2 (om inte, ersätt r 0 med m - r 0 , som fortfarande kommer att vara en rot av - d ). Använd sedan den euklidiska algoritmen för att hitta r och så vidare; stoppa när . Om är ett heltal, då är lösningen ; annars prova en annan rot av - d tills antingen en lösning hittas eller alla rötter har uttömts. I det här fallet finns det ingen primitiv lösning.

För att hitta icke-primitiva lösningar ( x , y ) där gcd( x , y ) = g ≠ 1 , notera att förekomsten av en sådan lösning innebär att g 2 delar m (och ekvivalent, att om m är kvadratfri , då alla lösningar är primitiva). Således kan ovanstående algoritm användas för att söka efter en primitiv lösning ( u , v ) till u 2 + dv 2 = m / g 2 . Om en sådan lösning hittas kommer ( gu , gv ) att vara en lösning på den ursprungliga ekvationen.

Exempel

Lös ekvationen . En kvadratrot av −6 (mod 103) är 32 och 103 ≡ 7 (mod 32); sedan och , det finns en lösning x = 7, y = 3.

  1. ^ Cornacchia, G. (1908). "Su di un metodo per la risoluzione in numeri interi dell' equazione ". Giornale di Matemache di Battaglini . 46 : 33–90.

externa länkar