我想计算10的幂,减去m。除了使用数学函数pow(10, -m)之外,还有什么快速有效的方法可以做到这一点吗?
我问c++大师这么简单的问题是,正如你所知道的,就像基数2,10也是一个特殊的基数。如果某个值n乘以10的幂减去m,则相当于将n的小数点左移m次。我认为这一定是一种快速有效的应对方式。
发布于 2011-05-27 15:00:57
对于浮点m,只要你的标准库实现写得很好,那么pow就是高效的。
也就是说,如果对该例程的调用占据了总运行时间的很大一部分。
发布于 2011-05-27 15:01:03
十在二进制机器上不是一个特殊的值,只有两个是。使用pow或exponentiation by squaring。
发布于 2011-05-27 15:01:51
不幸的是,使用IEEE754浮点表示法没有快速有效的方法来计算它。获得结果的最快方法是为您关心的每个m值构建一个表,然后执行查找。
https://stackoverflow.com/questions/6148861
复制相似问题