C++库文件 <cmath> (math.h)

来源:互联网 发布:淘宝刷人气软件 编辑:程序博客网 时间:2024/06/12 17:33

1、三角函数 Trigonometric functions

1.1、 cos() 函数

/* cos example */#include <stdio.h>      /* printf */#include <math.h>       /* cos */#define PI 3.14159265int main (){  double param, result;  param = 60.0;  result = cos ( param * PI / 180.0 );  printf ("The cosine of %f degrees is %f.\n", param, result );  return 0;}

1.2 sin() 正弦函数

/* sin example */#include <stdio.h>      /* printf */#include <math.h>       /* sin */#define PI 3.14159265int main (){  double param, result;  param = 30.0;  result = sin (param*PI/180);  printf ("The sine of %f degrees is %f.\n", param, result );  return 0;}

1.3、 tan() 正切函数

/* tan example */#include <stdio.h>      /* printf */#include <math.h>       /* tan */#define PI 3.14159265int main (){  double param, result;  param = 45.0;  result = tan ( param * PI / 180.0 );  printf ("The tangent of %f degrees is %f.\n", param, result );  return 0;}

1.4、 acos() 反余弦函数

/* acos example */#include <stdio.h>      /* printf */#include <math.h>       /* acos */#define PI 3.14159265int main (){  double param, result;  param = 0.5;  result = acos (param) * 180.0 / PI;  printf ("The arc cosine of %f is %f degrees.\n", param, result);  return 0;}

1.5、asin() 反正弦函数

/* asin example */#include <stdio.h>      /* printf */#include <math.h>       /* asin */#define PI 3.14159265int main (){  double param, result;  param = 0.5;  result = asin (param) * 180.0 / PI;  printf ("The arc sine of %f is %f degrees\n", param, result);  return 0;}

1.6、atan() 反正切函数

/* atan example */#include <stdio.h>      /* printf */#include <math.h>       /* atan */#define PI 3.14159265int main (){  double param, result;  param = 1.0;  result = atan (param) * 180 / PI;  printf ("The arc tangent of %f is %f degrees\n", param, result );  return 0;}

1.7、atan2() 带两个参数的反正切函数

/* atan2 example */#include <stdio.h>      /* printf */#include <math.h>       /* atan2 */#define PI 3.14159265int main (){  double x, y, result;  x = -10.0;  y = 10.0;  result = atan2 (y,x) * 180 / PI;  printf ("The arc tangent for (x=%f, y=%f) is %f degrees\n", x, y, result );  return 0;}

2、双曲函数 Hyperbolic functions

2.1、双曲余弦函数

/* cosh example */#include <stdio.h>      /* printf */#include <math.h>       /* cosh, log */int main (){  double param, result;  param = log(2.0);  result = cosh (param);  printf ("The hyperbolic cosine of %f is %f.\n", param, result );  return 0;}

2.2、双曲正弦函数

/* sinh example */#include <stdio.h>      /* printf */#include <math.h>       /* sinh, log */int main (){  double param, result;  param = log(2.0);  result = sinh (param);  printf ("The hyperbolic sine of %f is %f.\n", param, result );  return 0;}

2.3、双曲正切函数

/* tanh example */#include <stdio.h>      /* printf */#include <math.h>       /* tanh, log */int main (){  double param, result;  param = log(2.0);  result = tanh (param);  printf ("The hyperbolic tangent of %f is %f.\n", param, result);  return 0;}

3、指数函数与对数函数 Exponential and logarithmic functions

3.1、exp () 指数函数,以 e 为底数

/* exp example */#include <stdio.h>      /* printf */#include <math.h>       /* exp */int main (){  double param, result;  param = 5.0;  result = exp (param);  printf ("The exponential value of %f is %f.\n", param, result );  return 0;}

3.2、frexp(param,n) 二进制浮点数表示方法 x=param*2^n

/* frexp example */#include <stdio.h>      /* printf */#include <math.h>       /* frexp */int main (){  double param, result;  int n;  param = 8.0;  result = frexp (param , &n);  printf ("%f = %f * 2^%d\n", param, result, n);  return 0;}

3.3、log(x) x的自然对数 (Natural logarithm of x)

/* log example */#include <stdio.h>      /* printf */#include <math.h>       /* log */int main (){  double param, result;  param = 5.5;  result = log (param);  printf ("log(%f) = %f\n", param, result );  return 0;}

3.4、log10() 常用对数,以10为底 ( Common logarithm of x )

/* log10 example */#include <stdio.h>      /* printf */#include <math.h>       /* log10 */int main (){  double param, result;  param = 1000.0;  result = log10 (param);  printf ("log10(%f) = %f\n", param, result );  return 0;}

3.5、modf() 返回x的小数部分,其符号与x相同 ,但是参数中可以添加整数部分的变量( The fractional part of x, with the same sign)

/* modf example */#include <stdio.h>      /* printf */#include <math.h>       /* modf */int main (){  double param, fractpart, intpart;  param = 3.14159265;  fractpart = modf (param , &intpart);  printf ("%f = %f + %f \n", param, intpart, fractpart);  return 0;}

3.6、exp2() 返回2的x次方,2 raised to the power of x.

/* exp2 example */#include <stdio.h>      /* printf */#include <math.h>       /* exp2 */int main (){  double param, result;  param = 8.0;  result = exp2 (param);  printf ("2 ^ %f = %f.\n", param, result );  return 0;}

3.7、log2() x的二进制对数( The binary logarithm of x)

/* log2 example */#include <stdio.h>      /* printf */#include <math.h>       /* log2 */int main (){  double param, result;  param = 1024.0;  result = log2 (param);  printf ("log2 (%f) = %f.\n", param, result );  return 0;}

4、幂函数 Power functions

4.1、pow(base, power) 幂函数 The result of raising base to the power exponent

/* pow example */#include <stdio.h>      /* printf */#include <math.h>       /* pow */int main (){  printf ("7 ^ 3 = %f\n", pow (7.0, 3.0) );  printf ("4.73 ^ 12 = %f\n", pow (4.73, 12.0) );  printf ("32.01 ^ 1.54 = %f\n", pow (32.01, 1.54) );  return 0;}

4.2、sqrt(x) 计算x的平方根

/* sqrt example */#include <stdio.h>      /* printf */#include <math.h>       /* sqrt */int main (){  double param, result;  param = 1024.0;  result = sqrt (param);  printf ("sqrt(%f) = %f\n", param, result );  return 0;}

4.3、cbrt(x) 计算x的立方根

/* cbrt example */#include <stdio.h>      /* printf */#include <math.h>       /* cbrt */int main (){  double param, result;  param = 27.0;  result = cbrt (param);  printf ("cbrt (%f) = %f\n", param, result);  return 0;}

4.4、hypot(x,y) 计算直角三角形的斜边 ( The square root of (x^2+y^2) )

/* hypot example */#include <stdio.h>      /* printf */#include <math.h>       /* hypot */int main (){  double leg_x, leg_y, result;  leg_x = 3;  leg_y = 4;  result = hypot (leg_x, leg_y);  printf ("%f, %f and %f form a right-angled triangle.\n",leg_x,leg_y,result);  return 0;}

5、误差与伽马函数 Error and gamma functions

5.1、误差函数erf(x)
这里写图片描述

/* erf example */#include <stdio.h>      /* printf */#include <math.h>       /* erf */int main (){  double param, result;  param = 1.0;  result = erf (param);  printf ("erf (%f) = %f\n", param, result );  return 0;}

5.2、余差函数erfc(x) erfc(x) = 1-erf(x) 误差函数的补函数
这里写图片描述

/* erfc example */#include <stdio.h>      /* printf */#include <math.h>       /* erfc */int main (){  double param, result;  param = 1.0;  result = erfc (param);  printf ("erfc(%f) = %f\n", param, result );  return 0;}

5.3、tgamma(x) 伽马函数 ( the gamma function )
这里写图片描述

/* tgamma example */#include <stdio.h>      /* printf */#include <math.h>       /* tgamma */int main (){  double param, result;  param = 0.5;  result = tgamma (param);  printf ("tgamma(%f) = %f\n", param, result );  return 0;}

5.4、lgamma(x) log伽马函数 ( log-gamma function )
这里写图片描述

/* lgamma example */#include <stdio.h>      /* printf */#include <math.h>       /* lgamma */int main (){  double param, result;  param = 0.5;  result = lgamma (param);  printf ("lgamma(%f) = %f\n", param, result );  return 0;}

6、四舍五入与余数函数Rounding and remainder functions

6.1、ceil(x) x上取整函数

/* ceil example */#include <stdio.h>      /* printf */#include <math.h>       /* ceil */int main (){  printf ( "ceil of 2.3 is %.1f\n", ceil(2.3) );  printf ( "ceil of 3.8 is %.1f\n", ceil(3.8) );  printf ( "ceil of -2.3 is %.1f\n", ceil(-2.3) );  printf ( "ceil of -3.8 is %.1f\n", ceil(-3.8) );  return 0;}

6.2、floor(x) x的下取整函数

/* floor example */#include <stdio.h>      /* printf */#include <math.h>       /* floor */int main (){  printf ( "floor of 2.3 is %.1lf\n", floor (2.3) );  printf ( "floor of 3.8 is %.1lf\n", floor (3.8) );  printf ( "floor of -2.3 is %.1lf\n", floor (-2.3) );  printf ( "floor of -3.8 is %.1lf\n", floor (-3.8) );  return 0;}

6.3、fmod(y, x) y/x的余数

/* fmod example */#include <stdio.h>      /* printf */#include <math.h>       /* fmod */int main (){  printf ( "fmod of 5.3 / 2 is %f\n", fmod (5.3,2) );  printf ( "fmod of 18.5 / 4.2 is %f\n", fmod (18.5,4.2) );  return 0;}

6.4、round(x) x的四舍五入值
这里写图片描述

/* round vs floor vs ceil vs trunc */#include <stdio.h>      /* printf */#include <math.h>       /* round, floor, ceil, trunc */int main (){  const char * format = "%.1f \t%.1f \t%.1f \t%.1f \t%.1f\n";  printf ("value\tround\tfloor\tceil\ttrunc\n");  printf ("-----\t-----\t-----\t----\t-----\n");  printf (format, 2.3,round( 2.3),floor( 2.3),ceil( 2.3),trunc( 2.3));  printf (format, 3.8,round( 3.8),floor( 3.8),ceil( 3.8),trunc( 3.8));  printf (format, 5.5,round( 5.5),floor( 5.5),ceil( 5.5),trunc( 5.5));  printf (format,-2.3,round(-2.3),floor(-2.3),ceil(-2.3),trunc(-2.3));  printf (format,-3.8,round(-3.8),floor(-3.8),ceil(-3.8),trunc(-3.8));  printf (format,-5.5,round(-5.5),floor(-5.5),ceil(-5.5),trunc(-5.5));  return 0;}

7、绝对值、最小、最大 Absolute、Minimum, maximum

7.1、fabs(x) x的绝对值函数

/* fabs example */#include <stdio.h>      /* printf */#include <math.h>       /* fabs */int main (){  printf ("The absolute value of 3.1416 is %f\n", fabs (3.1416) );  printf ("The absolute value of -10.6 is %f\n", fabs (-10.6) );  return 0;}

7.2、abs(x) x的绝对值

// cmath's abs example#include <iostream>     // std::cout#include <cmath>        // std::absint main (){  std::cout << "abs (3.1416) = " << std::abs (3.1416) << '\n';  std::cout << "abs (-10.6)  = " << std::abs (-10.6) << '\n';  return 0;}

7.3、fmax(x, y) 两个参数中的最大值 (The maximum numeric value of its arguments. Values among which the function selects a maximum )

/* fmax example */#include <stdio.h>      /* printf */#include <math.h>       /* fmax */int main (){  printf ("fmax (100.0, 1.0) = %f\n", fmax(100.0,1.0));  printf ("fmax (-100.0, 1.0) = %f\n", fmax(-100.0,1.0));  printf ("fmax (-100.0, -1.0) = %f\n", fmax(-100.0,-1.0));  return 0;}

7.4、fmin(x, y) 两个参数中的最小值

/* fmin example */#include <stdio.h>      /* printf */#include <math.h>       /* fmin */int main (){  printf ("fmin (100.0, 1.0) = %f\n", fmin(100.0,1.0));  printf ("fmin (-100.0, 1.0) = %f\n", fmin(-100.0,1.0));  printf ("fmin (-100.0, -1.0) = %f\n", fmin(-100.0,-1.0));  return 0;}