Учебник по основам PHP. PHPBeginner

       

Математические функции


Эти математические функции предназначены только для работы с числовыми данными, которые имеет ваш компьютер. Если вам требуется дополнительная точность в расчетах, обратитесь к «математическим функциям повышенной точности 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


Содержание раздела