Оглавление
math.h #
Константы #
Константа | Смысл | Значение |
---|---|---|
M_E |
e | 2.71828182845904523536 |
M_LOG2E |
log2(e) | 1.44269504088896340736 |
M_LOG10E |
log10(e) | 0.434294481903251827651 |
M_LN2 |
ln(2) | 0.693147180559945309417 |
M_LN10 |
ln(10) | 2.30258509299404568402 |
M_PI |
pi | 3.14159265358979323846 |
M_PI_2 |
pi/2 | 1.57079632679489661923 |
M_PI_4 |
pi/4 | 0.785398163397448309616 |
M_1_PI |
1/pi | 0.318309886183790671538 |
M_2_PI |
2/pi | 0.636619772367581343076 |
M_2_SQRTPI |
2/sqrt(pi) | 1.12837916709551257390 |
M_SQRT2 |
sqrt(2) | 1.41421356237309504880 |
M_SQRT1_2 |
1/sqrt(2) | 0.707106781186547524401 |
Тригонометрия #
cos #
double cos(double a)
float cosf(float a)
Вычислить косинус угла в радианах
sin #
double sin(double a)
float sinf(float a)
Вычислить синус угла в радианах
tan #
double tan(double a)
float tanf(float a)
Вычислить тангенс угла в радианах
acos #
double acos(double x)
float acosf(float x)
Вычислить арккосинус, результат в радианах
asin #
double asin(double x)
float asinf(float x)
Вычислить арксинус, результат в радианах
atan #
double atan(double x)
float atanf(float x)
Вычислить арктангенс, результат в радианах
atan2 #
double atan2(double y, double x)
float atan2f(float y, float x)
Вычислить арктангенс
y/x
- угла, образованного началом координат и точкой (x, y), результат в радианах.cosh #
double cosh(double a)
float coshf(float a)
Вычислить гиперболический косинус угла в радианах
sinh #
double sinh(double a)
float sinhf(float a)
Вычислить гиперболический синус угла в радианах
tanh #
double tanh(double a)
float tanhf(float a)
Вычислить гиперболический тангенс угла в радианах
acosh #
double acosh(double x)
float acoshf(float x)
Вычислить гиперболический арккосинус, результат в радианах
asinh #
double asinh(double x)
float asinhf(float x)
Вычислить гиперболический арксинус, результат в радианах
atanh #
double atanh(double x)
float atanhf(float x)
Вычислить гиперболический арктангенс, результат в радианах.
Экспонента #
exp #
double exp(double x)
float expf(float x)
Вычислить экспоненту
x
, т.е. e^x
expm1 #
double expm1(double x)
float expm1f(float x)
Вычислить
(e^x) - 1
exp2 #
double exp2(double x)
float exp2f(float x)
Вычислить
2^x
Логарифм #
log #
double log(double x)
float logf(float x)
Вычислить логарифм по основанию e (натуральный)
log2 #
double log2(double x)
float log2f(float x)
Вычислить логарифм по основанию 2
log10 #
double log10(double x)
float log10f(float x)
Вычислить логарифм по основанию 10
log1p #
double log1p(double x)
float log1pf(float x)
Вычислить натуральный логарифм (x + 1)
log(x + 1)
Степень #
pow #
double pow(double base, double exp)
float powf(float base, float exp)
Вычислить
base^exp
(возвести в степень)sqrt #
double sqrt(double x)
float sqrtf(float x)
Вычислить квадратный корень
cbrt #
double cbrt(double x)
float cbrtf(float x)
Вычислить кубический корень
hypot #
double hypot(double x, double y)
float hypotf(float x, float y)
Вычислить гипотенузу
sqrt(x * x + y * y)
stdlib.h #
Случайные числа #
rand #
int rand()
Возвращает псевдослучайное число от
0
до RAND_MAX
srand #
void srand(unsigned int seed)
Установить начальное значение для генератора
rand()
Деление и остаток #
div_t, ldiv_t, lldiv_t #
struct div_t { int quot, rem; }
struct ldiv_t { long quot, rem; }
struct lldiv_t { long long quot, rem; }
Структура для хранения результата деления:
quot
- частное, rem
- остатокdiv, ldiv, lldiv #
div_t div(int x, int y)
ldiv_t ldiv(long int x, long int y)
lldiv_t lldiv(long long int x, long long int y)
Выполнить деление
x / y
и вернуть в виде структуры, в которой хранится частное и остаток. Часто бывает нужно выполнить эти действия с одним числом, через функцию получается в два раза быстрее, чем делить на две операции:
div_t res = div(379, 15);
// res.quot == 25
// res.rem == 4
ldiv_t lres = ldiv(1234567, 54321);
// lres.quot == 22
// lres.rem == 39505