In der Mathematik ist das rationales Sieb ein allgemeiner Algorithmus zum Faktorisieren von Ganzzahlen in Primfaktoren. Es ist ein Sonderfall des allgemeinen Nummernfeldsiebs. Obwohl es weniger effizient ist als der allgemeine Algorithmus, ist es konzeptionell einfacher. Es ist ein hilfreicher erster Schritt, um zu verstehen, wie das allgemeine Zahlenfeldsieb funktioniert.
Nehmen wir an, wir versuchen, die zusammengesetzte Zahl n zu berücksichtigen. Wir wählen eine gebundene B und identifizieren die -Faktorbasis (die wir P ) nennen, die Menge aller Primzahlen kleiner oder gleich . B . Als nächstes suchen wir nach positiven ganzen Zahlen z so dass sowohl z als auch z + n B B glätten - dh alle ihre Primzahlen Faktoren sind in P . Wir können daher für geeignete Exponenten schreiben ,
a
und für geeignete haben wir
.
Aber und sind kongruente Modulo so dass wir jeweils eine solche ganze Zahl z finden, die wir für Erträge halten ein multiplikatives Verhältnis (mod n ) zwischen den Elementen von P d
(wobei a i und b i sind nicht negative ganze Zahlen.)
Wenn wir genug von diesen Beziehungen erzeugt haben (es reicht im Allgemeinen aus, dass die Anzahl der Beziehungen ein paar mehr ist als P ), können wir die Methoden der linearen Algebra verwenden, um diese verschiedenen Faktoren miteinander zu multiplizieren Beziehungen so, dass die Exponenten der Primzahlen alle gleich sind. Dies gibt uns eine Übereinstimmung der Quadrate der Form a 2 ]b 2 (mod n ), die in eine Faktorisierung von umgewandelt werden können. n n = gcd ( a - b n ) × gcd ( a + b n ). Diese Faktorisierung könnte sich als trivial herausstellen (d. H. n = n × 1). In diesem Fall müssen wir es erneut mit einer anderen Kombination von Beziehungen versuchen; aber mit etwas Glück werden wir ein nicht-triviales Paar von Faktoren von n erhalten, und der Algorithmus wird enden.
Beispiel [ edit ]
Wir werden die ganze Zahl n = 187 unter Verwendung des rationalen Siebes einkalkulieren. Wir versuchen willkürlich den Wert B = 7, wobei wir die Faktorbasis P = {2,3,5,7} angeben. Der erste Schritt besteht darin, n auf Teilbarkeit durch jedes der Mitglieder von P zu testen; Wenn n durch eine dieser Primzahlen teilbar ist, sind wir bereits fertig. 187 ist jedoch nicht teilbar durch 2, 3, 5 oder 7. Als nächstes suchen wir nach geeigneten Werten für z ; Die ersten sind 2, 5, 9 und 56. Die vier geeigneten Werte von z ergeben vier multiplikative Beziehungen (Mod 187):
- 2 1 3 0 5 0 7 0 = 2 ≡ 189 = 2 0 3 3 3 5 0 7 1 ............. (1)
- 2 0 3 0 5 1 7 0 = 5 ≡ 192 = 2 6 3 1 5 0 7 0 ............. (2)
- 2 0 3 2 5 0 7 0 = 9 ≡ 196 = 2 2 3 0 5 0 7 2 .. ........... (3)
- 2 3 3 0 5 0 7 1 = 56 243 = 2 0 3 5 5 0 7 0 ............. ( 4)
Es gibt jetzt mehrere verschiedene Möglichkeiten, diese zu kombinieren und sogar Exponenten zu erhalten. Zum Beispiel,
- (1) × (4): Nachdem diese multipliziert und der gemeinsame Faktor von 7 aufgehoben wurde (was wir seit 7 tun können, da er Mitglied von P ist, ist bereits festgelegt worden, dass er mithelfen kann n [1]) reduziert sich dies auf 2 4 ≡ 3 8 (mod n ) oder 4 2 2 81 2 (mod n ). Die resultierende Faktorisierung beträgt 187 = gcd (81-4.187) × gcd (81 + 4.187) = 11 x 17.
Alternativ ist Gleichung (3) bereits in der richtigen Form:
- (3): Dies sagt 3 2 ≡ 14 2 (mod n ), was die Faktorisierung 187 = gcd (14-3.187) × ergibt gcd (14 + 3,187) = 11 × 17.
Einschränkungen des Algorithmus [ edit ]
Das rationale Sieb kann, wie das allgemeine Zahlenfeldsieb, keine Zahlen der Form beeinflussen p m wobei p eine Primzahl und m eine ganze Zahl ist. Dies ist jedoch kein großes Problem - solche Zahlen sind statistisch selten, und außerdem gibt es einen einfachen und schnellen Prozess, um zu prüfen, ob eine bestimmte Anzahl diese Form hat. Die wohl eleganteste Methode ist die Überprüfung, ob gilt für jedes 1 <b <log (n) unter Verwendung einer ganzzahligen Version der Newton-Methode zur Wurzelextraktion [2]
Das größte Problem ist, eine ausreichende Anzahl von z zu finden beide z und z + n sind B -glatt. Für jedes gegebene B nimmt der Anteil der Zahlen, die B sind, mit der Größe der Anzahl rasch ab. Wenn also n groß ist (etwa hundert Stellen), wird es schwierig oder unmöglich sein, z ausreichend zu finden, damit der Algorithmus funktioniert. Der Vorteil des allgemeinen Zahlenfeldsiebs besteht darin, dass man nur nach glatten Ordnungszahlen suchen muss n 1 / d für eine positive ganze Zahl d d (19459008) 5) und nicht wie hier gefordert n .
Referenzen [ edit ]
- A. K. Lenstra, H.W. Lenstra, Jr., M.S. Manasse und J.M. Pollard, Die Faktorisierung der neunten Fermat-Zahl, Math. Comp. 61 (1993), 319-349. Ein Entwurf ist unter www.std.org/~msm/common/f9paper.ps verfügbar. K. Lenstra, HW Lenstra, Jr. (Hrsg.) Die Entwicklung des Zahlenfeldsiebs, Vorlesungsunterlagen in Mathematics 1554, Springer-Verlag, New York, 1993.
- Anmerkung dass gemeinsame Faktoren nicht allgemein in einer Kongruenz aufgehoben werden können, aber sie können in diesem Fall da die Primzahlen der Faktorbasis alle bis n müssen. wie oben erwähnt. Siehe modulares multiplikatives Inverses.
- ^ R. Crandall und J. Papadopoulos, Zur Durchführung von Primalitätstests der AKS-Klasse, verfügbar unter [1]
No comments:
Post a Comment