Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Pollard Rho Methode mit Sage » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Pollard Rho Methode mit Sage
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
die dumme Blondine die dumme Blondine ist weiblich
Grünschnabel


images/avatars/avatar-52.jpg

Dabei seit: 16.12.2012
Beiträge: 4

Pollard Rho Methode mit Sage Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Hi,
also wir hatten die Aufgabe eine SAGE- Funktion zu implementieren, in der die Pollard_Rho Methode angewendet wird. Startwert ist x=1, n=1763 und f(x)=x^2+1.
Die Schleifendurchläufe mussten auch mit angegeben werden. So weit, so gut, das haben wir bereits geschafft, alles funktioniert und unsere Übungsleiter meinten auch, dass die Funktion richtig sei.

Nun sollten wir unsere Funktion noch auf die Fermat- Zahlen anwenden, um für [latex]n\in \left\{ 5,..,12\right\} [/latex] alle Primteiler [latex]\leq 10^{14} [/latex] von [latex]F_{n}[/latex] zu berechnen.

Unser Problem ist jetzt, dass unser Programm schon für n=5 zu lange braucht und mittendrin abbricht. Habt ihr eine Idee, wie wir unser Problem lösen können?

Meine Ideen:
Hier einmal unsere Funktion:

def pollard_rho(n,c=1,x=1):
...y = x
...d = 1
...i = 1
...while d == 1:
......x=(n**x+2)%c
......y=(y**2+c)%n
......y=(y**2+c)%n
......d=gcd(abs(x-y),n)
......i=i+1
...return x, y, d, i

und zur Wiederholung die Fermat- Zahlen:
[latex] F_{n}:=2^{2^{n}}+1\in \mathbb N<br />
F_{5}=4294967297 [/latex]
15.01.2013 18:27 die dumme Blondine ist offline E-Mail an die dumme Blondine senden Beiträge von die dumme Blondine suchen Nehmen Sie die dumme Blondine in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Das liegt daran, dass deine Implementierung nicht passt:
Ich habe mal für n=F2=17 die ersten Werte berechnen lassen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
x=1 y=1 d=1 i=0
x=0 y=5 d=1 i=1 
x=0 y=14 d=1 i=2
x=0 y=16 d=1 i=3
x=0 y=5 d=1 i=4 //wie i=1
x=0 y=14 d=1 i=5
x=0 y=16 d=1 i=6
x=0 y=5 d=1 i=7 //wie i=1
x=0 y=14 d=1 i=8
x=0 y=16 d=1 i=9
x=0 y=5 d=1 i=10 //wie i=1

Nach der in der Wikipedia genannten Methode kommt man bis n=6 noch flott voran(808 Durchläufe), für F7 habe ich es nach einigem Warten abgebrochen.

__________________
Syntax Highlighting fürs Board (Link)
15.01.2013 21:09 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Pollard Rho Methode mit Sage