Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#10

Re: Den MOD per Hand berechnen! -> falsches Ergebnis!!!!

  Alt 11. Feb 2007, 09:20
Delphi-Quellcode:
Function XHochYModZ(x, y, z: integer): Integer;
Var
  i, e: INteger;
Begin
  e := 1;
  For i := 1 To y Do
    e := (e * x) Mod z;
  result := e;
End;
Das ist defakto inpraktikabel und ineffizient. Wir führen damit Y mal eine modulare Multiplikation aus. Und stelle dir vor Y wäre wie bei RSA üblich circa 2^1024 groß.

Der Vorschlag von 3_of_8 ist da schon weitaus besser. Dieser führt im Durchschnitt Ln2(Y) mal eine modulare Multiplikation und Ln(Y)/2 eine Quadrierung durch wenn man nicht wie sein Vorschlag die Rechts nach Links Methode sondern die Links nach Rechts Methode anwendet. Ich kenne das aber und einen anderen Namen -> "Left to Right/Right to left binary Exponentation" also einfach gesagt eine binäre Exponentation.

Ich hatte hier vor langer Zeit schonmal einen Source für Int64 reingestellt, http://www.delphipraxis.net/internal...+exponentation

Gruß Hagen
  Mit Zitat antworten Zitat