Forum: Sonstige Fragen zu Delphi
Delphi
by gammatester,
8. Jul 2009
Hier eine korrigierte Fassung namens InvModKlaus:
- Zuerst wird das hier unsägliche move entfernt (Pascal kennt schon seit > 20 Jahren die Zuweisung von arrays).
- Dann wird der Bug beseitigt: Wenn das Inverse kleiner 0 ist wird natürlich nicht der andere Bezout-Koeffizient genommen, sondern einfach phi addiert.
- Dann stellen wir fest, daß wir die 1-er Komponenten gar nicht brauchen;...
Forum: Sonstige Fragen zu Delphi
Delphi
by gammatester,
8. Jul 2009
Also berechnet extEuclidian(e,phi,gcd) doch das modulare Inverse e^-1 mod phi!? Das ist dann doch wohl kein intuitiver Name. (Es war mir noch nie einsichtig, wie jemand viel Zeit mit der Entwicklung von Funktionen verbringen kann, ohne sich die paar Sekunden zu nehmen und hinzuschreiben, was eigentlich gemacht wird).
Mit den Beispieldaten aus Beitrag #5 hast Du einfach nur Glück gehabt. Hier...
Forum: Sonstige Fragen zu Delphi
Delphi
by gammatester,
7. Jul 2009
Auf diesen (und den Vorläufer-Thread) mit den verschiedenen vergeblichen Versuchen ein funktionierende ModInverse zu schreiben.
Forum: Sonstige Fragen zu Delphi
Delphi
by gammatester,
7. Jul 2009
Hallo Klaus,
Dein Code ist entweder falsch oder (wie hie leider üblich) nicht richtig beschrieben. Für p = 4523621, q = 5785379, d.h. phi=(p-1)*(q-1)=26170851628360 liefert Dein Code d=4 für d := extEuclidian(e,phi,gcd). Soll das ModInverse sein? Wohlt nicht da 4*17 = 68 <> 1 mod phi ist? Berechnet mit
procedure TForm1.Button2Click(Sender: TObject);
var
p,q,e,phi,d,gcd: int64;
begin
...
Forum: Sonstige Fragen zu Delphi
Delphi
by gammatester,
6. Jul 2009
Nein, tut sie eben sinnvollerweise nicht. Sie wird zusammen mit dem ggt im Erweiterten Euklidischen Algorithmus berechnet (und nicht mit Deiner Bruteforcemethode: nimm den ggt und probier der Reihe nach alle Möglichkeiten)
Richtig, aber in der Funktion sollten auch nur die Parameter aus dem Funktionskopf und keine globalen Variablen verwendet werden.
Dies war wohl mein letzter Beitrag...
Forum: Sonstige Fragen zu Delphi
Delphi
by gammatester,
6. Jul 2009
Willst Du es diesmal ernsthaft wissen und auf Vorschläge eingehen, oder soll's wieder so laufen wie im Thread Chinesischer Restsatz?
Einen Tip schon mal kostenlos :wink: Dein modinvers beschreibt immer noch nicht, was Du eigentlich machen willst. In Deinem neuen Beitrag willst Du modulo phi invertieren, testest aber ob das Produkt = 1 mod n ist!
Zum dritten Mal: Wirf n als Parameter von...