总所周知,我们在高中学过对数函数,记作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());
return ;
}

输出:

在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());
return ;
}
 

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

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

那么又会有问题,我们要怎么样求常规对数,即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()/log());
return ;
}
 

输出:

原文:http://blog.csdn.net/liujian20150808/article/details/50628061

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

  1. C语言中,头文件和源文件的关系(转)

    简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句, ...

  2. C 语言中 setjmp 和 longjmp

    在 C 语言中,我们不能使用 goto 语句来跳转到另一个函数中的某个 label 处:但提供了两个函数——setjmp 和 longjmp来完成这种类型的分支跳转.后面我们会看到这两个函数在处理异常 ...

  3. c语言中的scanf在java中应该怎么表达,Scanner类。

    1 java是面向对象的语言 它没有像C语言中的scanf()函数,但是它的类库中有含有scanf功能的函数 2 java.util包下有Scanner类 Scanner类的功能与scanf类似 3 ...

  4. C语言中do...while(0)的妙用(转载)

    转载来自:C语言中do...while(0)的妙用,感谢分享. 在linux内核代码中,经常看到do...while(0)的宏,do...while(0)有很多作用,下面举出几个: 1.避免goto语 ...

  5. C语言中,定义的含义?声明的含义?它们之间的区别是什么?

    在C语言中,对于定义和声明,也许我们非常的熟悉,但不一定真正的了解! 定义的含义:所谓定义,就是创建(编译器)一个对象,为这个对象分配一块内存空间并取名,也就是我们平常所说的变量名或对象名,一旦这个名 ...

  6. C++中函数的默认参数和C语言中volatile的学习

    1.函数默认参数 1 int func(int a,int b=10) 2 { 3 return a*b; 4 } 5 6 int main() 7 { 8 int c=func(2); 9 cout ...

  7. C语言中qsort函数用法

    C语言中qsort函数用法-示例分析    本文实例汇总介绍了C语言中qsort函数用法,包括针对各种数据类型参数的排序,非常具有实用价值非常具有实用价值. 分享给大家供大家参考.C语言中的qsort ...

  8. c语言中time相关函数

    工作中遇到的函数: int seed = time(NULL); srand(seed); signal(SIGINT, stop); signal(SIGUSR1, sig_usr1); 搜time ...

  9. C语言中的static 详细分析

    转自:http://blog.csdn.net/keyeagle/article/details/6708077/ google了近三页的关于C语言中static的内容,发现可用的信息很少,要么长篇大 ...

随机推荐

  1. android手机有多个摄像头,打开其中一个

    方法: private Camera openFrontFacingCameraGingerbread() { int cameraCount = 0; Camera cam = null; Came ...

  2. poj3372

    Candy Distribution Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5868   Accepted: 327 ...

  3. ORA-12505, TNS:listener does not currently know of SID given in connect desc

    数据库名(数据库服务名)配置错误.

  4. (转)HTTP

    HTTP(Hyper Text Transfer Protocol)超文本传输协,是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型. HTTP特点: 支持客户 / 服务器模式 简单快速 ...

  5. Powershell 脚本调用方法

    方法一: Get-Content "D:\PowershellScripts\Test\ErrorMailNotice.ps1" | Invoke-Expression 方法二: ...

  6. Spring 框架的核心功能之AOP技术

    1. AOP 的概述 AOP, Aspect Oriented Programming, 面向切面编程; 通过预编译方式和运行期动态代理实现程序功能的统一维护的技术; AOP 采取横向抽取机制,取代了 ...

  7. Java 面向对象编程介绍

    面向对象的概念 类与对象的关系 封装 面向对象 面向过程: 强调的是过程(动作) 面向对象: 强调的是对象(实体) 面向对象的特点 面向对象就是一种常见的思想,符合人们的思考习惯; 面向对象的出现,将 ...

  8. 4.Data Types in the mongo Shell-官方文档摘录

    总结: 1.MongoDB 的BSON格式支持额外的数据类型 2 Date 对象内部存储64位字节存整数,存储使用NumberLong()这个类来存,使用NumberInt()存32位整数,128位十 ...

  9. 浅谈 Python 的 with 语句(转)

    add by zhj: 上下文管理器是对try-except-finally的再封装而已,只能算是优化代码这一级别的feature 原文:http://www.ibm.com/developerwor ...

  10. phpcms使用session的方法

    phpcms使用session //session开始 必须有下面的代码,否则无效 private function _session_start() { $session_storage = 'se ...