A Shanks kvadratikus alakmódszer egy négyzetes alakok használatán alapuló egész számok faktorizációs módszere , amelyet Daniel Shanks [1] dolgozott ki 1975 -ben a Fermat-féle faktorizációs módszer továbbfejlesztéseként .
A 32 bites számítógépek esetében az ezen a módszeren alapuló algoritmusok vitathatatlanul vezető szerepet töltenek be a től ig terjedő számok faktorizációs algoritmusai között , és valószínűleg azok is maradnak. [2] Ez az algoritmus szinte bármilyen 18 jegyű összetett számot képes felosztani kevesebb mint egy ezredmásodperc alatt. Az algoritmus rendkívül egyszerű, gyönyörű és hatékony. Ezenkívül az ezen az algoritmuson alapuló módszereket segédeszközként használják nagy számok osztóinak, például Fermat-számoknak a kiterjesztésében .
Az algoritmus másik neve SQUFOF ( az angol mozaikszó : SQUARE FORm Factorization), ami négyzetes alakfaktorizációt jelent . Ez a megközelítés az évek során meglehetősen sikeresnek bizonyult, és ennek eredményeként a szakirodalomban számos különféle módosítás és megvalósítás található ebben a témában. [3] A legtöbb módszer bonyolult és zavaros, különösen akkor, ha a módszert számítógépen kell megvalósítani. Ennek eredményeként az algoritmusok számos változata nem alkalmas a megvalósításra. 1975-ben azonban Daniel Shanks egy olyan algoritmus létrehozását javasolta, amely nemcsak számítógépen, hanem egyszerű mobiltelefonon is megvalósítható és használható.
Bár Shanks más algoritmusokat is leírt az egész számok faktorizálására, nem tett közzé semmit az SQUFOF-on. A témában előadásokat tartott, módszerének alapvető lényegét egy meglehetősen szűk körben ismertette. Más tudósok egyes tanulmányai [4] [3] [5] [6] tárgyalták az algoritmust, de egyik sem tartalmaz részletes elemzést. Az is érdekes, hogy módszerében Shanks elég sok feltételezést fogalmaz meg [7] , amelyek sajnos bizonyítás nélkül maradtak. A [8] -ban néhány kísérlet eredményét mutatják be, amelyek arra utalnak, hogy sok feltételezés áll fenn. Végül ezekre az egyszerűsítő feltételezésekre alapozva Shanks létrehozta a SQUFOF-ot.
Ahhoz, hogy megértsük, hogyan valósul meg ez az algoritmus, ismerni kell a minimális információt az ebben a módszerben használt matematikai objektumokról, nevezetesen a másodfokú formákról . A bináris másodfokú forma egy polinom két változóból és :
A Shanks metódus csak határozatlan formákat használ . A másodfokú forma diszkriminánsát értjük. Azt mondjuk, hogy a másodfokú alak egész számot jelent, ha vannak olyan egészek, amelyekre az egyenlőség igaz: . Ha az egyenlőség igaz , akkor a reprezentációt primitívnek nevezzük .
Bármilyen határozatlan négyzetes alak esetében a redukciós operátor a következőképpen definiálható :
, ahol egész számként van definiálva, amelyet a feltételek egyedileg határoznak meg: [8]Ha az operátort egyszer alkalmazzuk az űrlapra , az eredményt a következőképpen írjuk le . Az operátor a következőképpen is meghatározható :
, ahol ugyanúgy definiálható, mint az előző esetben. Vegyük észre, hogy az operátorok és másodfokú alakzat diszkriminancia alkalmazása eredményeként a kapott másodfokú alakoknak is lesz diszkriminánsa .Az ezzel egyenértékű redukált forma előállításának módszerét Carl Gauss találta meg, és a redukciós operátor egymás utáni alkalmazásából áll, amíg redukálódik.
Tétel.
Mindegyik alak egyenértékű valamilyen redukált formával, és bármely redukált alakja egyenlő valamilyen pozitív formával . Ha - csökken, akkor az is csökken. |
Ezenkívül a másodfokú alakokkal végzett műveletek világos megértéséhez szükségünk van a négyzet, a szomszédos és a kétértelmű másodfokú formák fogalmára.
A Shanks módszer ötlete az, hogy összehasonlítja a felbontandó számot egy másodfokú bináris formával egy diszkriminánssal , amellyel egy sor ekvivalens transzformációt hajtanak végre, és az átmenetet a formából a kétértelmű formába . Akkor egy osztó lesz .
Az első változat egy adott negatív diszkrimináns pozitív-definit bináris másodfokú alakjaival dolgozik, az alakosztálycsoportban pedig egy ambig alakot talál , ami a diszkrimináns faktorizációját adja. Az első lehetőség összetettsége a kiterjesztett Riemann-hipotézis igazságától függ . [9]
A második változat a SQUFOF, amely bináris másodfokú formák osztálycsoportját használja pozitív diszkriminánssal. Megtalálja az ambig formát és faktorizálja a diszkriminánst. A SQUFOF összetettsége aritmetikai műveletek; az algoritmus legfeljebb . Az exponenciális összetettségű faktorizációs algoritmusok közül az SQUFOF tekinthető az egyik leghatékonyabbnak. [9]
A Shanks által végzett számítások szerint az algoritmus első és második ciklusának iterációinak számát a szám tényezőinek száma határozza meg, és megközelítőleg egyenlő:
ahol egy konstans körülbelül 2,4 az első iterációs ciklusban. [tíz]
Részletesebben az algoritmus a következőképpen írható fel: [11]
Bemenet: Páratlan összetett szám a faktorizáláshoz. Ha a Most -ra cseréljük Az utolsó tulajdonság szükséges ahhoz, hogy a másodfokú forma determinánsa fundamentális legyen, ami biztosítja a módszer konvergenciáját.
Kimenet: Nem triviális osztó .
1. Határozza meg az eredeti másodfokú alakot diszkriminánssal , ahol . 2. Végezzük el a kicsinyítési ciklust, amíg az alakzat négyzet alakú lesz. 3. Számítsa ki a négyzetgyökét! 4. Végezzük el a csökkentési ciklust addig, amíg a második együttható értéke stabilizálódik . A ciklus iterációinak számának körülbelül fele kell lennie az első ciklus iterációinak számának. Az utolsó érték adja a szám osztóját (esetleg triviális).Most leírjuk a számítógépen való megvalósítás algoritmusát. [11] Megjegyzendő, hogy bár az algoritmus elméleti része másodfokú formák ekvivalens transzformációira vonatkozik, az algoritmus gyakorlati része a folytonos tört módszer együtthatóinak kiszámításán alapul, az alakok igénybevétele nélkül. A ciklus minden iterációja megfelel a redukciós operátor megfelelő űrlapra történő alkalmazásának egy műveletének. Ha szükséges, visszaállíthatja a megfelelő űrlapokat a képletekkel:
Bevitel: Összetett szám
Kimenet: Nem triviális osztó
Mint már említettük, ennek az algoritmusnak nem ez az egyetlen megvalósítása. Az algoritmus megvalósítását itt is megtalálod [8]
Ezt a módszert alkalmazzuk a szám faktorizálására [8]
|
|
Most a második ciklusban láthatja, hogy Innen a szám
Ezt az algoritmust az NFS és QS számos megvalósításában használják a kis segédszámok faktorizálására, amelyek nagy egész számok faktorálásakor keletkeznek. Mindenesetre az SQUFOF-ot főként segédalgoritmusként használják erősebb faktorizációs algoritmusokban, ezért az SQUFOF-ot általában olyan szerény méretű számok faktorizálására használják, amelyek nem rendelkeznek kis prímosztókkal. Az ilyen számok általában kis számú különböző prímszám szorzata. [8] .
Számelméleti algoritmusok | |
---|---|
Egyszerűség tesztek | |
Prímszámok keresése | |
Faktorizáció | |
Diszkrét logaritmus | |
GCD keresése | |
Modulo aritmetika | |
Számok szorzása és osztása | |
A négyzetgyök kiszámítása |