Математические функции
Функции работы с данными
🕛 01.11.2006, 13:12
Эти математические функции предназначены только для работы с числовыми данными, которые имеет ваш компьютер. Если вам требуется дополнительная точность в расчетах, обратитесь к «математическим функциям повышенной точности BCMath». Математические функции могут быть разделены на несколько групп: математические константы, алгебраические функции, функции генерации случайных чисел, тригонометрические функции, функции конвертации чисел.
Математические константы
Следующие значения определяются математическим модулем РНР как константы:
Константа
Значение
Описание
М_Р1
3.14 159265358979323846
Пи
М_Е
2.7182818284590452354
E
M_LOG2E
1. 4426950408889634074
log_2 e
M_LOG10E
0.43429448190325182765
log_10 e
M_LN2
0.693 1471 8055994530942
log_e 2
М LN10
2.30258509299404568402
log_e 10
М PI 2
1.57079632679489661923
Пи/2
М_Р1_4
078539816339744830962
Пи/4
М_1_Р1
0.31330988618379067154
1/Пи
М 2 PI
0.63661977236758134308
2/Пи
M_SQRTPI
1.77245385090551602729
Sqrc(nn)
M_2_SQRTPI
1.12837916709551257390
2/sqrt(nii)
M_SQRT2
1 .4 1 42 1356237309504880
Sqrt(2)
M_SQRT3
1.73205080756887729352
Sqrt(3)
M_SQRT1_2
0.70710678118654752440
l/sqrt(2)
M_LNPI
1.144729885849400174)4
log_e(IIn)
M_EULER
0.57721566490153286061
Константа Эйлера
Алгебра
abs
Получение абсолютного значения числа
mixed abs (mixed number)
Возвращает абсолютное значение аргумента number. Если аргумент имеет дробный тип, возвращается дробь; иначе целое.
$I=abs(-546). // $I=dnt) 546; $D=abs(123 456); // $D=(double) 123.456:
max
Получение наибольшего аргумента
mixed max (mixed argl, mixed arg2..mixed argn)
Возвращает наибольший из аргументов. Число аргументов неограниченно. Если в качестве первого параметра передается массив, функция возвращает наибольшее значение из этого массива. Если аргумент не массив, то необходимо как минимум два аргумента, иначе выдается предупреждение. В случае, когда в аргументах передастся более одного массива, возвращается тот массив, который содержит наибольшее значение. Комбинировать в аргументах массивы и скалярные значения не рекомендуется. Возвращается значение с тем типом, который имеет наибольшую точность среди аргументов (double или integer), и этот же тип используется для сравнения аргументов.
min
Получение наименьшего аргумента
mixed min (mixed argl, mixed arg2, mixed argn)
Возвращает наименьший из аргументов. Функция действует подобно функции тах().
round
Округление дробного числа до целого
double round (double val [, int precision])
Округляет дробное число val до указанной аргументом precision точности (число десятичных знаков после занятой).
$foo = round (34). // $foo ==30 $foo =
round (3.5); // $foo ==40
$foo = round (1.95583. 2): // $foo ==
1.96
См. также: ceil ()и floor().
floor
Удаление дробной части числа
int floor (float number)
Возвращает целое значение аргумента number, у которого безусловно отбрасываются все цифры после запятой. Указывать в аргументе целые числа - бесполезная операция.
$foo = floor (I 95583): // $foo == 1
См. также: ceil ()и round().
ceil
Дополнение дробного числа до следующего целого
int ceil (float number)
Возвращает целое значение аргумента number, дополненного до следующего целого числа. Указывать в аргументе целые числа бессмысленно.
$х = ceil(4.25): // $х=5
См. также: floor() и round().
Pi
Получение значения числа Пи
double pi (void)
Возвращает значение числа Пи (3.1415926535898).
sqrt
Извлечение квадратного корня числа
float sqrt (float arg)
Возвращает квадратный корень из аргумента arg.
echo sqrt(90),// выведет 9.4868329805051
log
Вычисление натурального логарифма
float log (float arg)
Возвращает значение натурального логарифма аргумента arg.
echo log(2 7); // выведет 0.99325177301028
log 10
Вычисление десятичного логарифма
float logl() (float arg)
Возвращает значение десятичного логарифма аргумента arg.
echo loglO(lOOO). // выведет 3
ехр
Вычисление экспоненты
float exp (float arg)
Возвращает число с, возведенное в степень arg.
echo exp(l): //' выведет 2.71828)828459
См. также pow().
pow
Возведение числа в степень
float pow (float base, float exp)
Возвращает результат возведения основания base в степень ехр.
ecno pow(2.8).// выведет 256
См. также ехр().
Генерация случайных чисел
srand
Инициализация генератора случайных чисел
void srand (int seed)
Инициализирует генератор случайных чисел значением seed.
srand ((double) microtiroe() * 1000000): Srandval = rsnd():
См. также: rand(), getrandmax(), mt_rand(), mt_srand() и mt_getrandmax().
getrandmax
Получение максимального случайного числа int getrandmax (void)
Возвращает максимальное значение, которое может возвратить вызов функции генератора случайных чисел rand(). Обычно это 32 767.
См. также: rand(), srand(), mt_rand(), mt_srand() n mt_getrandmax().
rand
Генерация случайного числа
int rand ([int min [, int max]])
При вызове с необязательными параметрами rain, max, определяющими соответственно минимальное и максимальное значение, генерирует и возвращает целочисленное псевдослучайное значение, лежащее включительно в указанных пределах. Если аргументы не указываются, то используются значения по умолчанию: 0 и RAND MAX.
Не забывайте заранее инициализировать генератор случайных чисел функцией srand().
См. также: srand(), getrandmax(), mt_rand(), mt_srand() и rat_getrandmax().
mt_srand
Инициализация МТ-генератора случайных чисел
void mt_srand (int seed)
Инициализирует МТ-генератор случайных чисел значением seed.
mt_srand ((double) microtimeO * 1000000): Srandval = mt_rand():
См. также: mt_rand(), mt_getrandmax(), srand(), rand() и getran dmax().
mt_ getrandmax
Получение максимального МТ-случайного числа int mt_getrandmax (void)
Возвращает максимальное значение, которое может быть получено при вызове функции, генерирующей случайные числа, - mt_rand(). Обычно это 2 147 483 647.
См. также: mt_rand(), mt_srand(), rand(), srand() и getrandmax().
mt_ rand
Генерация МТ-случайного числа
int mt_rand ([int min [, int max]])
При вызове с необязательными параметрами min, max, определяющими соответственно минимальное и максимальное значение, генерирует и возвращает целочисленное псевдослучайное значение, лежащее включительно в указанных пределах. Если аргументы не указываются, то используются значения по умолчанию: 0 и RAND_MAX.
Не забывайте заранее инициализировать генератор случайных чисел функцией rat_srand().
Многие функции генераторов случайных чисел из старых библиотек Hbcs имеют непонятные или неизвестные характеристики, и, что более важно, они медленно работают. По умолчанию РНР использует случайный генератор из библиотеки libc в функции rand(). Функция mt_rand() является заменой. Она использует известный алгоритм Мерсена Твистера (Mersenne Twister), придумавшего его для криптографических задач, и в среднем эта функция в 4 раза быстрее, нежели аналог из библиотеки libc. Для более подробной информации смотрите домашнюю страничку автора (http://www.math.keio.ac. jp/~matumoto/emt.html), а исходный оптимизированный код алгоритма МТ доступен по адресу: http://www.scp.syr.edu/~marc/hawk/twister. html.
См. также: mt_srand(), mt_getrandmax(), srand(), rand() и getrandmax().
lcg_value
Генерация случайного дробного числа
double Icg_value(void);
Возвращает псевдослучайное дробное число в диапазоне от 0 до 1.
Тригонометрия
sin
Получение синуса аргумента
float sin (float arg)
Возвращает значение синуса аргумента агд, вычисленное в радианах.
См. также: cos() и tan().
cos
Получение косинуса аргумента
float cos (float arg)
Возвращает значение косинуса аргумента агд, вычисленное в радианах. ,
См. также: sin() и tan().
tan
Получение тангенса аргумента float tan (float arg)
Возвращает значение тангенса аргумента arg, вычисленное в радианах.
См. также: sin() и cos().
asin
Получение арксинуса аргумента float asin (float arg)
Возвращает значение арксинуса аргумента агд, вычисленное в радианах.
См. также: acos() и atan().
acos
Получение арккосинуса аргумента
float acos (float arg)
Возвращает значение арккосинуса аргумента аrg, вычисленное в радианах.
См. также: asin() и atan().
atan
Получение арктангенса аргумента float atan (float arg)
Возвращает значение арктангенса аргумента агд, вычисленное в радианах.
См. также: asin() и acos().
atan2
Получение арктангенса двух чисел float atan2 (float у, float x)
Возвращает значение арктангенса двух аргументов х и у, вычисленное в радианах.
Ее действие сходно с вычислением арктангенса частного (у/х), за исключением того, что знаки обоих аргументов используются для определения квадранта результата.
См. также: acos() и atan().
Конвертация чисел
base_convert
Конвертация числа из одной системы счисления в другую
string base_convert (string number, int frombase, int tobase)
Возвращает строку, содержащую представление числа number, переведенного из системы счисления frombase, в систему tobase. Для аргументов frombase и tobase допускаются значения от 2 до 36 включительно. Цифры в числах с основанием большим, чем 10, представляются буквами от «а» до «z»; «а» означает 10, «b» - ll и т. д. до «z», означающей 35.
Sbinary - base_convert (Shexadecimal. 16. 2).
decbin
Конвертация десятичного числа в двоичное
string decbin (int number)
Возвращает строку, содержащую двоичное представление целого числа, указанного аргументом number. Наибольшее значение, которое число number может иметь, это 2 147 483 647 в десятичном представ лснии (в двоичном - это строка из 31-й единицы).
См. также bindec().
dechex
Конвертация десятичного числа в шестнадцатеричное , string dechex (int number)
Возвращает строку, содержащую шестнадцатеричное представление F целого числа, указанного аргументом number. Наибольшее значение которое число number может иметь, это 2 147 483 647 в десятичном представлении (в шестнадцатеричном - это строка 7fffffff)
См. также hexdec().
decoct
Конвертация десятичного числа в восьмеричное string decoct (int number)
Возвращает строку, содержащую восьмеричное представление ц лого числа, указанного аргументом number. Наибольшее значение которое число number может иметь, это 2 147 483 647 в десятичном представлении (в восьмеричном - это строка 17777777777).
См. также octdec().
bindec
Конвертация двоичного числа в десятичное int bindec (string_ binary_string)
Возвращает десятичный целочисленный эквивалент двоичного числа, представленного строковым аргументом binary_string. Максимальное число, которое может быть конвертировано, это строка из 31-и единицы, равная в десятичном представлении 2 147 483 647.
См. также decbin().
hexdec
Конвертация шестнадцатеричного числа в десятичное int hexdec (string hex_string)
Возвращает десятичное целочисленное значение шестнадцатеричного числа, представленного строкой hex string. Максимальное значение аргумента - «7fffffff», или 2 147 483 647 в десятичном *™
См. также dechex().
octdec
Конвертация восьмеричного числа в десятичное int octdec (string octal_string)
Возвращает десятичное целочисленное значение восьмеричного числа, представленного строкой octal_string. Максимальное значение аргумента - «17777777777», или 2 147483647 в десятичном исчислении.
См. также decoct().
deg2rad
Преобразование градусов в радианы
double deg2rad (double number)
Возвращает значение number, указанное в градусах, преобразованным в радианы.
См. также rad2deg().
rad2deg
Преобразование радианов в градусы
double rad2deg (double number)
Возвращает значение number, указанное в радианах, преобразованным в градусы.
См. также deg2rad().
number_ format
Форматирование числа
string number_format
(float number, int decimals, string dec_point, string thousands_sep)
Возвращает строку, содержащую отформатированное значение числа number. Функция может принимать либо один, либо два, либо четыре аргумента (но не три).
Если указывается один аргумент, число number будет отформатировано без указания цифр после десятичной точки, но каждая тройка тысячных цифр будет разделена запятой. Например,
echo number_format( 96739590. 345): // выведет 96.733.590.
Если указывается два аргумента, число number будет отформатировано с указанием decimals цифр после десятичной точки и каждая тройка тысячных цифр будет разделена запятой (заметьте, числа округляются и добавляются незначащие нули в конце).
echo riumber_format( 96739590. 3945.1);
// выведет 9b. 739. 590. 4 echo number format (96739590 3.4); // выведет 96. /29.590.3000
Если указываются все четыре аргумента, число number будет отформатировано с указанием decimals цифр после десятичной точки (в качестве которой будет использован символ dec_point), и каждая тройка тысячных цифр будет разделена символом thousands_sep (заметьте, числа округляются и добавляются незначащие нули в конце).
echo number_format (96739590.3.3.":". .. );
// выведет 96 739'590:300