Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Potenzieren mit sehr großen Zahlen ohne modulus?????

  Alt 2. Dez 2005, 15:12
Mach es doch so:
Delphi-Quellcode:
Function MegaPotenzierer (a,b,x,y : Extended) : Extended;
Const
  ccZero = 1E-5; // Hab vergessen, wie man floats auf 0 prüft
  ccMin = 0.000001; // kleinstes Zwischenergebnis
  ccMax = 100000000; // höchstes Zwischenergebnis

Begin
  Result := a; x:=x-1;
  Repeat
    while (x>ccZero) do begin
      Result := result * a;
      x:=x-1;
      if (Result > ccMax) Then Break; // jetzt nicht mehr weiterrechnen
      End;
 
    while (y>ccZero) do begin
      Result := result / b;
      y := y - 1;
      If Result > ccMax Then Break;
      End;
  Until (x<ccZero) and (y<ccZero); // Heisst das nicht 'IsZero (x)'?
End;
Ungetestet, aber ich potenziere so lange mit a, bis ich nicht mehr darf, oder bis das Zwischenergebnis größer als ein bestimmter Wert ist. Dann wird so lange durch b geteilt, bis ich nicht mehr darf, oder das Zwischenergebnis wieder kleiner als ein Minimalwert ist. Das wird so lange wiederholt, bis nichts mehr zu tun ist.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat