Вероятности с небольшими числами
Я работаю с большим количеством вероятностей, которые я умножаю, поэтому я быстро получаю очень маленькие числа. Но похоже, что Python наконец-то сохранил конечный результат как ноль.
чтобы преодолеть это затруднение, я решил суммировать логарифмы этих вероятностей (вместо прямого умножения вероятностей). Эта стратегия возвращает отрицательное число (назовите его c), как и ожидалось.
Но затем, если я хочу применить экспоненту к c (чтобы вернуться к действительному значению моего продукта вероятностей), я получу нулевое значение, потому что c слишком сильно отрицателен (что-то вроде -123445,4).
Как я мог преодолеть эту проблему?
1 ответ
Если вы собираетесь использовать числа этой величины, вам следует использовать специализированную библиотеку, которая может обрабатывать произвольную точность с плавающей запятой. Проверьте пакет mpmath или bigfloat, например.
Компьютеры изначально поддерживают только числа, приблизительно до exp(-300). В качестве альтернативы вы можете ограничить свой код, чтобы хранить только экспоненту, и никогда не преобразовывать его в десятичное представление.