Thema: Delphi IsPowerOfN

Einzelnen Beitrag anzeigen

gammatester

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

Re: IsPowerOfN

  Alt 24. Okt 2009, 00:44
Zitat von Wolfgang Mix:
Zitat:
Wenn man unbedingt will, könnte man zB sowas benutzen
Delphi-Quellcode:
function IsPowerOfX(base, number: double): boolean;
begin
  result := IsZero(abs(frac(logn(base, number)));
end;
Aja, und Du bist sicher, daß das mit der Null (IsZero) wirklich funktioniert?
Halte ich für ein Gerücht!
Vielleicht solltest Du mal in den Quellcode schauen, ehe Du falsche Vorstellungen in die Welt setzt. IsZero testet nicht gegen 0. Wenn Du keine Quellcode hast, wäre es doch keine Schande, zu fragen was IsZero eigentlich macht - jedenfalls bei Leuten, die sich nicht als perfekt bezeichnen :)
Delphi-Quellcode:
IsZero(a) := abs(a) <= (type)Resolution mit
ExtendedResolution = 1E-19 * FuzzFactor;
DoubleResolution = 1E-15 * FuzzFactor;
SingleResolution = 1E-7 * FuzzFactor;
FuzzFactor = 1000;
Zitat von Wolfgang Mix:
Das abs ist überflüssig, da Nachkommastellen immer positiv sind.
Noch mehr unreflektierter und ungetesteter Blödsinn: z.B. frac(-0.3) = -0.3.
Zitat von Wolfgang Mix:
Und was soll nun wirklich besser sein?
Zeig mir einen Fall, wo's schlechter ist. Wie gesagt: da es in der Praxis kein Schwein interessiert, ist's auch eh egal.
  Mit Zitat antworten Zitat