Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Файл заголовка стандартной библиотеки C, предоставляющий математические функции. Математические операции в C — это набор функций в стандартной библиотеке языка программирования C, реализующих базовые математические функции. Все функции так или иначе используют числа с плавающей точкой. Различные стандарты C предоставляют различные, но обратно совместимые наборы функций. Большинство этих функций также доступны в стандартной библиотеке C++, хотя и в других заголовочных файлах (заголовочные файлы C также включены, но только как устаревшая функция обеспечения совместимости).
C standard library header file providing mathematical functions
C mathematical operations are a group of functions in the standard library of the C programming language implementing basic mathematical functions. All functions use floating point numbers in one manner or another. Different C standards provide different, albeit backwards compatible, sets of functions. Most of these functions are also available in the C++ standard library, though in different headers (the C headers are included as well, but only as a deprecated compatibility feature).
Типовые функции
Заголовок <tgmath.h> определяет типонезависимый макрос для каждой математической функции, определённой в <math.h> и <complex.h>. Это обеспечивает ограниченную поддержку перегрузки математических функций: одно и то же имя функции может использоваться с параметрами разных типов, а конкретная функция будет выбрана во время компиляции в зависимости от типов этих параметров. Каждый типонезависимый макрос, соответствующий функции, определённой как для вещественных, так и для комплексных чисел, включает в себя в общей сложности 6 различных функций: float, double и long double, а также их комплексные варианты. Типонезависимый макрос, соответствующий функции, определённой только для вещественных чисел, включает в себя в общей сложности 3 различные функции: float, double и long double варианты этой функции. Язык C++ имеет встроенную поддержку перегрузки функций и поэтому не предоставляет заголовок <tgmath.h>, даже в целях совместимости.
The header <tgmath. h> defines a type generic macro for each mathematical function defined in <math. h> and <complex. h>. This adds a limited support for function overloading of the mathematical functions: the same function name can be used with different types of parameters; the actual function will be selected at compile time according to the types of the parameters. Each type generic macro that corresponds to a function that is defined for both real and complex numbers encapsulates a total of 6 different functions: float, double and long double, and their complex variants. The type generic macros that correspond to a function that is defined for only real numbers encapsulates a total of 3 different functions: float, double and long double variants of the function. The C++ language includes native support for function overloading and thus does not provide the <tgmath. h> header even as a compatibility feature.
Генерация случайных чисел
Заголовок <stdlib.h> (<cstdlib> в C++) определяет несколько функций, которые можно использовать для генерации статистически случайных чисел. Описание функций: rand генерирует псевдослучайное число в диапазоне от 0 до RAND_MAX включительно. srand инициализирует генератор псевдослучайных чисел. arc4random генерирует псевдослучайное число между 0 и UINT32_MAX, как правило, используя алгоритм лучше, чем у rand. arc4random_uniform генерирует псевдослучайное число между 0 и заданным максимальным значением. arc4random_buf заполняет буфер псевдослучайным потоком бит. arc4random_stir инициализирует генератор псевдослучайных чисел. Семейство функций arc4random для генерации случайных чисел не определено в стандарте POSIX, но встречается в некоторых распространенных реализациях libc. Изначально оно относилось к генератору ключевого потока утечки версии шифра RC4 (отсюда и название "предполагаемый RC4"), но с тех пор были реализованы различные алгоритмы, обычно из других шифров, таких как ChaCha20, с использованием того же имени. Качество случайности, обеспечиваемое rand, обычно слишком низкое, чтобы считаться статистически случайным, и требует явной инициализации. Обычно рекомендуется использовать arc4random вместо rand, когда это возможно. Некоторые C-библиотеки реализуют rand, используя arc4random_uniform внутри.
The header <stdlib. h> (<cstdlib> in C++) defines several functions that can be used for statistically random number generation. Function Description rand generates a pseudo random number between 0 and RAND MAX, inclusive. srand initializes a pseudo random number generator arc4random generates a pseudo random number between 0 and UINT32 MAX, usually using a better algorithm than rand arc4random uniform generates a pseudo random number between 0 and a maximum value. arc4random buf fill a buffer with a pseudo random bitstream. arc4random stir initializes a pseudo random number generator. The arc4random family of random number functions are not defined in POSIX standard, but is found in some common libc implementations. It used to refer to the keystream generator of a leaked version of RC4 cipher (hence "alleged RC4"), but different algorithms, usually from other ciphers like ChaCha20, have been implemented since using the same name. The quality of randomness from rand are usually too weak to be even considered statistically random, and it requires explicit seeding. It is usually advised to use arc4random instead of rand when possible. Some C libraries implement rand using arc4random uniform internally.