algorithm – 给定exp()函数,如何实现ln()函数?

栏目: 编程工具 · 发布时间: 7年前

内容简介:当我在CS面试时,我遇到了这个问题.我不知道它,更不用说实现代码了……我能得到一些提示吗?附: exp()是函数y = e ^ x和ln()是y = ln(x)

当我在CS面试时,我遇到了这个问题.我不知道它,更不用说实现代码了……

我能得到一些提示吗?

附: exp()是函数y = e ^ x和ln()是y = ln(x)

您可以通过二进制搜索答案找到日志时间的值.这是可能的,因为log X是单调递增函数.

(由 WolframAlpha 提供).

例如,如果我们必须计算的对数值(假设它是X)大于1,则以answer = X的假设开始.提高功率e ^ answer并检查该值是否大于或小于现在,根据您获得的值是否大于或小于X,您可以优化您的限制.当您达到答案的合适范围内时,搜索将停止.

double log(double X){
        double lo = 1;
        double hi = X;

        while(true){
            double mid = (lo+hi)/2;
            double val = power(e, mid);
            if(val > X){
                hi = mid;
            }
            if(val < X){
                lo = mid;
            }
            if(abs(val-X) < error){
                return mid;
            }
        }
    }

同样,如果X的值小于1,那么你可以将这种情况减少到我们已经考虑过的情况,即.当X大于1时.例如,如果X = 0.04,那么

log 0.04 = log(4/100)

=(log 4) – (log 100)

翻译自:https://stackoverflow.com/questions/22706077/given-the-exp-function-how-to-implement-the-ln-function


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

精通Spring 4.x

精通Spring 4.x

陈雄华、林开雄、文建国 / 电子工业出版社 / 2017-1-1 / CNY 128.00

Spring 4.0是Spring在积蓄4年后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。Spring 4.0引入了众多Java开发者翘首以盼的基于Groovy Bean的配置、HTML 5/WebSocket支持等新功能,全面支持Java 8.0,最低要求是Java 6.0。这些新功能实用性强、易用性高,可大幅降低Java应用,特别是Java W......一起来看看 《精通Spring 4.x》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具