ich kürzlich entdeckt, dass x**.5
und math.sqrt(x)
nicht immer das gleiche Ergebnis in Python produzieren:Was ist genauer, x **. 5 oder math.sqrt (x)?
Python 2.6.1 (r261:67517, Dec 4 2008, 16:51:00) [MSC v.1500 32 bit (Intel)]
on win32
>>> 8885558**.5 - math.sqrt(8885558)
-4.5474735088646412e-13
alle ganzen Zahlen unter 10 ** 7 Überprüfung, erzeugen die beiden Methoden unterschiedliche Ergebnisse für fast genau 0,1% der Proben, mit der Größe des Fehlers, der für größere Zahlen (langsam) zunimmt.
Die Frage ist also, welche Methode ist genauer?
Können Sie erklären, was Sie mit "Fehlerquote" meinen? –
Die zwei Methoden zur Berechnung einer Quadratwurzel führen nicht zu identischen Ergebnissen für 10,103 Zahlen unter 10 ** 7. (Oder etwa 0,1%) –
Ich sehe, das ist, was ich vermutete, dass Sie vielleicht gemeint haben. Sie werden wahrscheinlich feststellen, dass, wenn es einen Unterschied zwischen den beiden Berechnungsmethoden gibt, der Unterschied in dem am wenigsten signifikanten ein oder möglicherweise zwei Bits der Gleitkommadarstellung liegt. Dies wird als normal angesehen und ist eine Folge der verschiedenen Algorithmen, die zur Berechnung der Ergebnisse verwendet werden. –