In de getaltheorie, een deelgebied van de wiskunde, wordt de Dixons factorisatiemethode (ook wel Dixons algoritme genoemd) algemeen gebruikt voor de factorisatie van positieve gehele getallen in priemgetallen; het is een methode voor de factorisatie van gehele getallen. Het algoritme is in 1981 opgesteld door John Dixon, een wiskundige van de Carleton University.
Basisidee
Dixons methode voor de ontbinding van het gehele getal
is gebaseerd op het uitgangspunt van Fermats factorisatiemethode door te zoeken naar twee kwadraten die modulo
equivalent zijn. Fermats factorisatiemethode vindt zulke kwadraten door systematisch alle mogelijkheden na te gaan. Dat kost in het algemeen veel rekentijd.
Daarom vervangt Dixon in zijn methode de voorwaarde ‘is het kwadraat van een geheel getal’ door de veel zwakkere voorwaarde ‘heeft alleen kleine priemfactoren’.
Het algoritme zoekt nu kwadraten
die modulo
het product zijn van machten van een vast aantal kleine priemgetallen
en zoekt het product van een aantal van zulke kwadraten waarin alle machten van de priemgetallen even zijn:
![{\displaystyle z_{1}^{2}z_{2}^{2}\ldots z_{r}^{2}\equiv p_{1}^{2M_{1}}\cdot \ldots \cdot p_{n}^{2M_{n}}{\pmod {N}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/fd62ebdddb596a5c320c0fb2016fed4fddffe980)
Dan is:
![{\displaystyle x^{2}\equiv z_{1}^{2}z_{2}^{2}\ldots z_{r}^{2}\equiv \left(p_{1}^{M_{1}}\cdot \ldots \cdot p_{n}^{M_{n}}\right)^{2}\equiv y^{2}{\pmod {N}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a764d18c8dda55a95a5efb141edf377e9b3733c2)
en daarmee is
een veelvoud van
.
Algoritme
Kies een bovengrens
voor de te gebruiken priemgetallen
. Deze verzameling priemgetallen wordt de factorbasis genoemd. Zoek daarna getallen
in het bereik
waarvan de kwadraten modulo
B-glad zijn, dus alleen priemfactoren uit de factorbasis hebben.
.
Vervolgens wordt uit de getallen
een selectie gemaakt, waarvan het product alleen even machten van de priemgetallen bevat. Dit kan gebeuren door gebruik te maken van methoden uit de lineaire algebra.
Zij nl.
de matrix met de machten, dan wordt een vector
gezocht waarvoor
. De vector
geeft aan welke van de
tot de gewenste selectie behoren.
Als
geen echte deler van
oplevert, is kennelijk
, en moet men een andere selectie proberen of andere
bepalen, eventueel met een nieuwe factorbasis.
Voorbeelden
Voorbeeld 1
Neem voor het ontbinden van het getal 65621 als factorbasis {2,3,5,7}. Er geldt:
. Het eerste getal waarvan het kwadraat modulo 65621 alleen factoren uit de factorbasis heeft is 261:
![{\displaystyle 261^{2}\mod 65621=2500=2^{2}\cdot 5^{4}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/51e1771b2b621e822d0ff3ddf5b7f95eecca75c9)
Omdat de exponenten van de priemgetallen beide even zijn, kan gelijk de volgende stap gedaan worden:
![{\displaystyle (261-2\cdot 5^{2})(261+2\cdot 5^{2})=211\times 311\mod 65621=0}](https://wikimedia.org/api/rest_v1/media/math/render/svg/44d8df7203d615f17187011c3d3e2e5e57b22d6e)
Dus
![{\displaystyle 65621=211\times 311}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5c7cd533f740d48e0e8889c14308fec29da9f3b5)
Voorbeeld 2
Neem voor het factoriseren van 94563 de factorbasis {2,3,5,7,11,13}.
![{\displaystyle 821^{2}\mod 94563=12100=2^{2}\cdot 5^{2}\cdot 11^{2}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c2d36080945ce338240671f78f08dc94f62d4c30)
Dus geldt:
![{\displaystyle (821-2\times 5\times 11)(821+2\times 5\times 11)=711\times 931{\pmod {94563}}=0}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2a095b6a47d83264dce09cf3181678e817718d86)
en
![{\displaystyle 711\times 931=94563\times 7}](https://wikimedia.org/api/rest_v1/media/math/render/svg/713bc0d2a02309b1a805f6717640ef8d6bcb40d9)
Eenvoudig is te zien dat 711 deelbaar is door 9, en 931 door 7, zodat
![{\displaystyle 3^{2}\times 79\times 133=94563}](https://wikimedia.org/api/rest_v1/media/math/render/svg/678cd4a7791ce8f67ab152e12a6f840405efecfb)
Hoewel het niet moeilijk is in te zien dat
![{\displaystyle 133=7\times 19}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4827b39f84326c58bc6980dbba449ba1aebed2ae)
kan dit ook met het algoritme bepaald worden.
![{\displaystyle 13^{2}\mod 133=36=2^{2}\times 3^{2}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3f350727765aeb3899baa76d76fd7ce17e113805)
![{\displaystyle (13-2\times 3)(13+2\times 3)=7\times 19=133}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a3088aee32e6120b6194e097f0142102ced673c7)
Als eindresultaat volgt:
![{\displaystyle 94563=3^{2}\times 7\times 19\times 79}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f3d19ed9f05692df442558b403ce5ad321e77bc8)
Kwadratische zeef
De kwadratische zeef is een optimalisering van Dixons methode. Daarmee worden geschikte waarden voor
in de buurt van
gekozen zodanig dat
klein is en de kans op het vinden van een glad getal sterk vergroot wordt.
Bronnen, noten en/of referenties - (en) J. D. Dixon, "Asymptotically fast factorization of integers," Math. Comput., 36(1981), p. 255-260.
- Dit artikel of een eerdere versie ervan is een (gedeeltelijke) vertaling van het artikel Dixon's factorization method op de Engelstalige Wikipedia, dat onder de licentie Creative Commons Naamsvermelding/Gelijk delen valt. Zie de bewerkingsgeschiedenis aldaar.
|