Registriert seit: 26. Jul 2005
Ort: Mainz
31 Beiträge
Delphi 7 Professional
|
Re: Wie lang dürfen verschachtelte FOR-Scleifen sein?
22. Apr 2006, 01:06
Hallo,
die ganze Sache ist noch ein wenig komplizierter als bisher diskutiert, denn 100^100 ist eine Zahl mit 200 Nullen und diese Zahl läßt sich in den üblichen Zahlenformaten von Delphi nicht darstellen. Wenn man die numerische Gleichheit wirklich testen wollte, so reicht es nicht die ersten 10 oder 16 Stellen auf Gleichheit abzufragen.
Daher kann man für eine solche numerische Prüfung auch Funktionen wie exp oder log nicht benutzen, denn sie können immer eine minimale Ungenauigkeit mitbringen. Also ganz wichtig: Alle Stellen müssen dargestellt werden und genau rechnen und das bedeutet, dass man nicht exp(n*ln(c)) schreiben kann, sondern man muss wirklich c n-mal mit sich multiplizieren (was in jedem Schleifendurchlauf - wenn es geschickt gemacht ist - einer Multiplikation mit c entspricht).
Dies alles ist der Grund, warum es z.B. so schwierig ist bei großen Zahlen zu testen, ob sie Primzahlen sind und richtig schwierig wird es dann bei Monstern mit hunderttausend oder Millionen von Stellen. Es gibt aber Libraries, die solche Zahlen darstellen und mit ihnen rechnen können.
|