Мне нужно вычислить список очень маленьких чисел, таких как
(0,1) ^ 1000, 0,2 ^ (1200),
, а затем нормализовать их, чтобы они суммировались до одного т.е.
a1 = 0,1 ^ 1000, a2 = 0,2 ^ 1200
И я хочу вычислить а1 '= а1 / (а1 + а2), a2 '= a2 (a1 + a2).
У меня проблемы с недостаточным заполнением, так как я получаю a1 = 0. Как я могу это обойти? Теоретически я мог бы иметь дело с журналами, и тогда log (a1) = 1000 * log (0.l) был бы способом представить a1 без проблем с переполнением - но для нормализации мне нужно было бы получить log (a1 + a2) - который я не могу вычислить, так как не могу представить a1 напрямую.
Я программирую с R - насколько я могу судить, в C # нет такого типа данных, как Decimal, который позволяет получить значение лучше, чем значение с двойной точностью.
Мы будем благодарны за любые предложения, спасибо