zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Exakte Ergebnisse sind gewöhnlich bei der Verwendung von Gleitpunktarithmetik nicht möglich. Bei einer festen Anzahl von Bits pro Zahl wird es fast immer kleine Abweichungen geben.

Abbruchbedingung für die Schleife

Um zu bestimmen, ob das Ergebnis fast korrekt ist, berechnen Sie dessen Quadrat. Wenn alteSchaetzung*alteSchaetzung fast gleich N ist, dann

N/(alteSchaetzung*alteSchaetzung) == fast 1.0

oder

N/(alteSchaetzung*alteSchaetzung) - 1.0 == fast 0.0

Leider wissen wir nicht, ob "fast 0.0" negativ oder positiv sein wird. Aus diesem Grund müssen wir den absoluten Wert verwenden, um sicher zu gehen, dass er positiv ist. Der absolute Wert einer Zahl ist eine Zahl ohne negatives Vorzeichen. In Mathematikbüchern wird der absolute Wert von x mit |x| dargestellt. Also wird die Schleife beendet werden, wenn:

| N/(alteSchaetzung*alteSchaetzung) - 1.0 |  == fast 0.0

Jetzt müssen wir entscheiden, was "fast 0.0" bedeutet. Wenn alle Variablen vom Typ doppelte Genauigkeit sind, dann werden sie eine Genauigkeit von ungefähr 15 Dezimalstellen haben. Um sicher zu gehen, gehen wir davon aus, dass 14 Stellen an Genauigkeit erreicht werden können. "Fast 0" bei 14 Stellen an Genauigkeit bedeutet "weniger als 0.00000000000001"

FRAGE 13:

Wie wird 0.00000000000001 in der Exponentialschreibweise dargestellt?