在使用C++编程时,我想要计算一些量的总和,并对总和取对数:
如果可能的话 - 当计算被多次执行时,exp 可能会成为瓶颈。
log(a_1 + a_2 + a_3 + ... + a_n)
然而,我并没有这些量的实际值,我只有它们的对数值:
l_1 = log(a_1), l_2 = log(a_2), ... , l_n = log(a_n)
有没有一种有效的方法来获取a_i之和的对数?我想避免
log(s) = log(exp(l_1) + exp(l_2) + ... + exp(l_n))
如果可能的话 - 当计算被多次执行时,exp 可能会成为瓶颈。
这里
发问。 - Dr. belisariusc=log(a_i)
的2 ** c_i
来找到a_i
。这意味着要处理大数字,并且它是一个相对较慢的操作。也许math.stackexchange.com上的人们对此有更好的见解。 - wilhelmtell