Ich versuche, einen LCM-Algorithmus zu implementieren. Es muss LCM für sehr große Zahlen finden.Python-Berechnung Fehler
LCM gefunden wird, unter Verwendung der Formel,
LCM(A, B) = (A * B)/GCD(A, B)
wobei A und B zwei Eingänge.
Input: 226553150 1023473145
So LCM = (226553150 * 1023473145)/5
es sein sollte, 46374212988031350
.
Aber python findet dies als 46374212988031352
, was offensichtlich ein Fehler ist. Wie löst man dieses Problem?
Fließkomma-Mathematik ist ** nicht präzise **. –
Sie können mehr über die Grenzen von Fließkommawerten hier lesen: https://docs.python.org/2/tutorial/floatingpoint.html – Keiwan
Sieht so aus, als ob dies ein Coursera-Kurs ist, ich sehe dort eine [C-Frage zum selben Thema ] (http://stackoverflow.com/questions/36540103/lowest-common-multiple-with-doubles-in-c). –