Я попытался вычислить math.exp(9500)
, но столкнулся с OverflowError: math range error
(примерно 6,3e4125). Из этого вопроса кажется, что это связано со слишком большим поплавком, принятый ответ говорит «(...) немного выходит за пределы диапазона двойного числа, поэтому вызывает переполнение».
Я знаю, что Python может работать с произвольно большими целыми числами (длинный тип), есть ли способ таким же образом обрабатывать произвольно большие числа с плавающей запятой?
Редактировать: мой первоначальный вопрос был об использовании целых чисел для вычисления exp(n), но, как сказал Эрик Дюминил, самым простым способом сделать это будет 3**n
, который не дает никакого полезного результата. Я понимаю, что этот вопрос может быть похож на этот вопрос.
exp(9500)
... - person EOF   schedule 25.07.2017log((exp(9500)/n)*i)
равно9500 + log(i/n)
или9500 + log(i) - log(n)
. Тогда все будет работать в обычном формате с плавающей запятой двойной точности. - person Mark Dickinson   schedule 25.07.2017