Я пытаюсь реализовать алгоритм поиска LCM. Он должен найти LCM для очень больших чисел.Ошибка вычисления Python
LCM найдена с помощью формулы,
LCM(A, B) = (A * B)/GCD(A, B)
, где А и В являются два входа.
Вход: 226553150 1023473145
Так, LCM = (226553150 * 1023473145)/5
Должно быть, 46374212988031350
.
Но python находит это как 46374212988031352
, что, очевидно, является ошибкой. Как решить эту проблему?
Математика с плавающей точкой ** неточна **. –
Вы можете узнать больше о границах плавающих точек здесь: https://docs.python.org/2/tutorial/floatingpoint.html – Keiwan
Похоже, это курс Курсера, я вижу, что есть вопрос [C] по тому же вопросу ] (http://stackoverflow.com/questions/36540103/lowest-common-multiple-with-doubles-in-c). –