0
我有一个非常小的指数值(例如exp(n)
,与n<-300
),这是从高斯PDF生成的列表。计算指数数字的数值问题(来自高斯PDF)
我想计算出有多少他们每个人是成正比的总和,例如像下面的蟒蛇般的伪代码所做的:
s = 0 # sum of all values
for n in exponents:
s += exp(n)
for n in exponents:
k = exp(n)/s # I want to compute k for each n
的问题是,因为n
值都非常小,总和s
有时会变成零,我会得到除零误差。
我知道我可以做的一件事就是向所有n
添加一个常数值(比如说300)以防止下溢,但在其他情况下会导致溢出。
我该如何解决这个问题?
我不知道我是否清楚地表达了自己,如果其中任何一个都没有意义或任何语法错误,请纠正我。 在此先感谢。