Algorytm Cornacchii
W teorii Cornacchii jest algorytmem rozwiązywania równania , 1 i d oraz m są względnie pierwsze . Algorytm został opisany w 1908 roku przez Giuseppe Cornacchię.
Algorytm
Najpierw znajdź być wymienionego jeśli takie nie może być prymitywnego rozwiązania pierwotnego równania. Bez utraty ogólności możemy założyć, że 0 r ≤ m / 2 (jeśli nie, to zamień r 0 na m - r 0 , które nadal będzie pierwiastkiem z - d ). Następnie użyj algorytmu Euklidesa , aby znaleźć , i tak dalej; przestań, gdy . Jeśli , } w przeciwnym razie wypróbuj inny pierwiastek z - d , aż zostanie znalezione rozwiązanie lub wszystkie pierwiastki zostaną wyczerpane. W tym przypadku nie ma prymitywnego rozwiązania.
Aby znaleźć nieprymitywne rozwiązania ( x , y ) gdzie gcd( x , y ) = g ≠ 1 , zauważ, że istnienie takiego rozwiązania implikuje, że g 2 dzieli m (i równoważnie, że jeśli m jest wolne od kwadratów , to wszystkie rozwiązania są prymitywne). Zatem powyższy algorytm może być wykorzystany do poszukiwania prymitywnego rozwiązania ( u , v ) dla u 2 + dv 2 = m / g 2 . Jeśli takie rozwiązanie zostanie znalezione, to ( gu , gv ) będzie rozwiązaniem pierwotnego równania.
Przykład
Rozwiąż równanie . Pierwiastek kwadratowy z −6 (mod 103) to 32, a 103 ≡ 7 (mod 32); od i , istnieje rozwiązanie x = 7, y = 3.
- ^ Kornacchia, G. (1908). „Su di un metoda per la risoluzione in numeri interi dell”equazione ". Giornale di Matematiche di Battaglini . 46 : 33–90.
Linki zewnętrzne
- Basilla, JM (2004). „O rozwiązaniach " (PDF) . proc. Japonia Acad . 80 (A): 40–41.