Оглавление
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
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) |