C++ 数学函数
在数学领域,你可能会看到sin和log这样的函数,也学过对sin(π/2)和log(1/x)这样的表达式求值。首先,要求出括号中表达式的值,这个值称为函数的参数。比如π/2约为1.571,若x为10则1/x的值为0.1。
然后你就可以通过查表或执行各种计算来求函数本身的值了。1.571的正弦是1,0.1的对数是-1(假设log函数是求以10为底的对数)。
对于求类似log(1/sin(π/2))这样的更复杂表达式的值,上述求解过程可反复进行。首先我们求出最里面那个函数的参数,然后求整个函数,如此反复。
C++提供了一组内置函数,包含了大多数你能想到的数学运算。调用这些数学函数的语法形式与其本身的数学符号很相似:
double log = log(17.0);
double angle = 1.5;
double height = sin(angle);
第一例中的log定义为求17的自然对数(底数为e)。还有一个函数名为log10,取以10为底的对数。
第二例求解的是变量angle的正弦值。C++设定赋给sin以及其他三角函数的参数都是以弧度为单位的。角度转弧度,需要先除以360,再乘以2π。
如果你不知道π精确到15位小数是多少,你可以使用acos函数计算出来。-1的arccos(反余弦)值就是π,因为π的余弦值是-1。
double pi = acos(-1.0);
double degrees = 90;
double angle = degrees * 2 * pi / 360.0;
在使用数学函数之前,需要包含math头文件。头文件包含了编译器需要知道的,却在你的程序之外定义的函数信息。比如"Hello, world!"这个例子中,我们通过使用include语句包含了名为iostream.h的头文件:
#include <iostream.h>
iostream.h包含了输入、输出(I/O)字节流的信息,包括一个名为cout的对象。
类似的,math头文件包含了数学函数的相关信息,可以在你的程序开头把它同iostream.h一起包含进去:
#include <math.h>