Einzelnen Beitrag anzeigen

Benutzerbild von St.Pauli
St.Pauli

Registriert seit: 26. Dez 2004
351 Beiträge
 
Delphi 7 Personal
 
#10

Re: Miller-Rabin - Eigene Impl. findet nicht jede Primzahl..

  Alt 21. Dez 2005, 13:29
@Amateurprofi, negaH und Der_Unwissende: Danke für eure Hilfe!!!

Zitat von Amateurprofi:
Naja St.Pauli, dann hab ich mal deine Hausaufgaben gemacht.
THX!

Zitat von Amateurprofi:
In der Funktion ModularExponentiation heit es im Pseudo Code

Zitat:
Let (bk, bk-1,...b0) be the binary representation of b
for i <-- k downto 0
Bei Dir wird das so umgesetzt daß, b als Binärstring in b_bin gestellt wird.
b_bin[Length(b_bin)] ist dabei Bit0.
Auf den ersten Blick sieht das so aus, wie im Pseudo Code, aber beim zweiten Blick eben nicht.
Die Schleife for i:=k downto 0 faßt zuerst hast höchstwertige Bit an und zuletzt Bit0.
Bei Deiner Schleife for i:=Length(b_bin) downto 1 ist es genau umgekehrt.
Ja stimmt. Danke - ich hatte mich so auf die Variabeln u und t konzentriert, um den Fehler dort zu finden, dass ich den ganzen Rest vollkommen vergessen hatte...

Zitat von Amateurprofi:
Ich hab das korrigiert und dann für alle (ungeraden) Zahlen von 3 bis 65535 probiert. Bis 46337 bringt das Programm korrekte Ergebnisse. Für höhere Werte sagt es nur noch composite.... Hab nicht weiter geprüft, warum.
Ich vermute, dieser Fehler hat wieder mit der Binär-Darstellung von b zu tun. Werde mich gleich nochmal in Ruhe damit auseinander setzten

@ negaH: Danke für deine Optimierung. Zu zweitens: Davon haben wir ja gesprochen. Es muss sich um einen Fehler in der Implentierung handeln! Und zu den Suchvorschlägen: Da hatte ich wohl die falschen Suchbegriffe (Miller & Rabin) - und aus den Ergebnissen wurde mir nicht geholfen...
Gruß St.Pauli
  Mit Zitat antworten Zitat