C语言中 ln(以自然对数e为底) lg(以十为底) 以及logab(以a为底,b为真数)的相关知识

总所周知,我们在高中学过对数函数,记作y=logax。下面是百度百科关于对数函数的描述:

对数的定义:一般地,如果ax=N(a>0,且a≠1),那么数x叫做以a为底N的对数,记作x=logaN,读作以a为底N的对数,其中a叫做对数的底数,N叫做真数一般地,函数y=logax(a>0,且a≠1)叫做对数函数,也就是说以幂为自变量,指数为因变量,底数为常量的函数,叫对数函数。其中x是自变量,函数的定义域是(0,+∞)。它实际上就是指数函数反函数,可表示为x=ay。因此指数函数里对于a的规定,同样适用于对数函数。
而在C++/C语言中,也有对数函数,只不过表示方式略有不同。

在C++/C语言中,对数函数y = lnx的表示方法为y = log(x),函数的完整原型为:double log(double x);

例如:

#include<cstdio>  
#include<algorithm>  
#include<cmath>  
using namespace std;  
int main()  
{  
    printf("%f\n",log(10));  
    return 0;  
}

输出:C语言中 ln(以自然对数e为底) lg(以十为底) 以及logab(以a为底,b为真数)的相关知识

在C++/C语言中,对数函数y = lgx(以10为底的对数函数)的表示方法为y = log10(x),函数的完整原型为:double log10(double x);

例如:

#include<cstdio>  
#include<algorithm>  
#include<cmath>  
using namespace std;  
int main()  
{  
    printf("%f\n",log10(10));  
    return 0;  
}

输出:C语言中 ln(以自然对数e为底) lg(以十为底) 以及logab(以a为底,b为真数)的相关知识

因此我们在实际应用中可以直接调用这两个函数,但要记住在C/C++语言中表示的不同形式,而且在使用时需要加上头文件#include

否则在题目提交时会报错(PE)

那么又会有问题,我们要怎么样求常规对数,即logab(以a为底,b为真数)的值呢?

这个其实也很简单,一个换底公式就解决了

C语言中 ln(以自然对数e为底) lg(以十为底) 以及logab(以a为底,b为真数)的相关知识



公式描述:
公式中a,c均大于零且不等于1。

因此我们可以将其转换成两个以自然对数为底或者是以10为底的数的商

例如:我们要求解log(2)8的值,则有:

#include<cstdio>  
#include<algorithm>  
#include<cmath>  
using namespace std;  
int main()  
{  
    printf("%f\n",log(8)/log(2));  
    return 0;  
}

输出:C语言中 ln(以自然对数e为底) lg(以十为底) 以及logab(以a为底,b为真数)的相关知识

原文:http://blog.csdn.net/liujian20150808/article/details/50628061
原文链接: https://www.cnblogs.com/qiynet/p/7609733.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/260622

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月14日 下午1:39
下一篇 2023年2月14日 下午1:40

相关推荐