Forum: Sonstige Fragen zu Delphi
Delphi
by St.Pauli,
21. Dez 2005
So, ich habe mir alles nochmal angeschaut - der Code ist genau der gleiche wie der Pseudocode. Ich habe die Funktion Bin mal geändert, ich glaube die erste hatte nicht richtig funktioniert, jedoch brachte auch dies keinen merkbaren Unterschied.
Schließlich habe ich mal die Variabel-Typen von Integer auf LongWord gesetzt und auf einmal zeigte mir der Code alle Primzahlen bis 65.517 korrekt an!...
Forum: Sonstige Fragen zu Delphi
Delphi
by St.Pauli,
21. Dez 2005
@Amateurprofi, negaH und Der_Unwissende: Danke für eure Hilfe!!! :thumb:
:wink: THX!
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...
Forum: Sonstige Fragen zu Delphi
Delphi
by St.Pauli,
20. Dez 2005
23, 47, 53, 59, 71, 79, 83, 89 zwischen 1 und 100. Erkannt hat er 5, 7, 11, 13, 17, 19, 29, 31, 37, ... Also schon mal mehr erkannt als nicht :lol: Und jeh mehr ich damit rumspiele und teste, wie die Zwischenwerte für erkannte und nicht erkannte Primzahlen aussehen, desto mehr denke ich, den Fehler nie zu finden. :|
t := 0;
u := n-1;
while ((u mod 2) = 0) do
begin
u :=...
Forum: Sonstige Fragen zu Delphi
Delphi
by St.Pauli,
20. Dez 2005
OK, schon mal danke. Ja, du redest von dem richtigen Algorithmus!!!
Ja - Das mit der Fehlerwahrscheinlichkeit stimmt, sie ist >= 1/2 ^ s (glaub ich). Bei mir in der Praxis beträgt dies bei 20 Wiederholungen 0.00000095367431640625, dazu noch die Tatsache, dass immer die gleichen Zahlen als nicht-prim angezeigt werden und es ist fast unmöglich, dass es sich um eine Kettung von Zufällen...
Forum: Sonstige Fragen zu Delphi
Delphi
by St.Pauli,
20. Dez 2005
Problem bei meiner Implentierung des Miller-Rabin Tests
Wie schon im Titel erwähnt, findet meine Implentierung von dem Miller-Rabin Primzahltest leider nicht jede Primzahl.
Das liegt leider an meiner Implentierung des Algos, ich kann aber absolut nicht den Fehler finden.
function Bin(Int: Integer): String;
VAR i : Integer;
begin
Result := '';
for i := 7 downto 0 do