Metoda de înmulțire Schönhage-Strassen ( ing. Algoritmul Schönhage-Strassen ) este un algoritm de înmulțire a numerelor întregi mari bazat pe transformarea Fourier rapidă , necesită ) operații pe biți, unde este numărul de cifre binare din produsul [1] .
Inventat de Arnold Schönhage și Volker Strassen în 1971 [2] .
De fapt, este o metodă de înmulțire a polinoamelor dintr-o variabilă, se transformă într-un algoritm de înmulțire a numerelor, dacă aceste numere sunt reprezentate ca polinoame de la baza sistemului numeric, iar după primirea rezultatului, se transferă prin cifre. De exemplu, pentru a înmulți 157 și 171 (în notație zecimală), se efectuează următoarele operații:
De asemenea, în algoritm, puteți înmulți numerele modulo Fermat , dacă utilizați sistemul de numere binar .
Metoda a fost considerată cea mai rapidă metodă asimptotic din 1971 până în 2007, când a fost inventat algoritmul Fuhrer cu o estimare mai bună a complexității [3] . În practică, metoda Schönhage-Strassen începe să depășească metodele clasice anterioare, cum ar fi înmulțirea Karatsuba și algoritmul Toom-Cook (o generalizare a metodei Karatsuba), începând cu numere întregi de ordine - (de la 10.000 la 40.000 de zecimale) [4] ] [5] [6] .
Algoritmi teoretici numerelor | |
---|---|
Teste de simplitate | |
Găsirea numerelor prime | |
Factorizarea | |
Logaritm discret | |
Găsirea GCD | |
Modul de aritmetică | |
Înmulțirea și împărțirea numerelor | |
Calcularea rădăcinii pătrate |