Thema: Delphi IsPowerOfN

Einzelnen Beitrag anzeigen

gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#4

Re: IsPowerOfN

  Alt 23. Okt 2009, 17:24
Leider wiedermal ziemlich ungetestet und falsch. Neben OldGrumpys Bedenken, hier ein fetter Bug: Jede Zahl number > 1 ist eine Potenz zu base < 1! Warum? Weil ln(number) > 0 und ln(base) < 0 also lgx(base, number) < 0 < 1e-9. Also ist mindestens ein abs dringend erforderlich.

Delphi-Quellcode:
function IsPowerOfX(base, number: double): boolean;
begin
  result := abs(frac(lgx(base, number))) < 1e-9;
end;
  Mit Zitat antworten Zitat