Schönhage-Strassenova metoda násobení ( angl. Schönhage-Strassen algorithm ) je algoritmus pro násobení velkých celých čísel založený na rychlé Fourierově transformaci , vyžaduje ) bitové operace, kde je počet binárních číslic v součinu [1] .
Vynalezli Arnold Schönhage a Volker Strassen v roce 1971 [2] .
Ve skutečnosti se jedná o metodu násobení polynomů z jedné proměnné, mění se v algoritmus pro násobení čísel, pokud jsou tato čísla reprezentována jako polynomy ze základu číselné soustavy, a po obdržení výsledku přenést přes cifry. Například pro násobení 157 a 171 (v desítkové soustavě) se provádějí následující operace:
Také v algoritmu můžete násobit modulo Fermatova čísla , pokud používáte binární číselný systém .
Metoda byla považována za asymptoticky nejrychlejší metodu od roku 1971 do roku 2007, kdy byl vynalezen Fuhrerův algoritmus s lepším odhadem složitosti [3] . V praxi začíná Schönhage-Strassenova metoda překonávat dřívější klasické metody, jako je Karatsubovo násobení a Toom-Cookův algoritmus (zobecnění Karatsubovy metody), počínaje celými čísly řádu - (od 10 000 do 40 000 desetinných míst) [4 ] [5] [6] .
Číselné teoretické algoritmy | |
---|---|
Testy jednoduchosti | |
Hledání prvočísel | |
Faktorizace | |
Diskrétní logaritmus | |
Hledání GCD | |
Modulová aritmetika | |
Násobení a dělení čísel | |
Výpočet druhé odmocniny |