Pow: примеры (PHP)
pow(int|float $num, int|float $exponent): int|floatФункция pow() (или оператор **) в PHP предназначена для возведения числа в степень. Она часто используется в математических вычислениях, финансовых расчетах (сложный процент), научном моделировании и графике.
- $num (int|float): Основание степени. Может быть целым или числом с плавающей точкой.
- $exponent (int|float): Показатель степени. Также может быть целым или дробным числом.
Функция возвращает результат возведения $num в степень $exponent. Возвращаемый тип — int или float.
Возведение в целую степень:
echo pow(2, 3); // 2 ** 38
Возведение в дробную степень (извлечение корня):
echo pow(9, 0.5); // Квадратный корень из 93
Возведение в отрицательную степень:
echo pow(2, -2);0.25
Использование оператора ** (доступен с PHP 5.6):
echo 5 ** 2;25
- sqrt($num): Специализированная функция для вычисления квадратного корня. Работает быстрее, чем pow($num, 0.5), и читаемее для этой конкретной операции.
- exp($num): Возвращает число e (основание натурального логарифма), возведенное в степень $num. Эквивалентно pow(M_E, $num), но точнее и эффективнее для работы с экспонентой.
- gmp_pow() / bcpow(): Функции для работы с большими числами (библиотеки GMP и BCMath). Следует использовать, когда необходима высокая точность или работа с числами, выходящими за пределы стандартных типов PHP.
Python: Оператор ** или функция math.pow(). math.pow() всегда возвращает float.
print(2 ** 3) # 8
print(math.pow(2, 3)) # 8.0JavaScript: Метод Math.pow() или оператор ** (с ES7).
console.log(Math.pow(2, 3)); // 8
console.log(2 ** 3); // 8MySQL: Функции POW() или POWER(). Используются в SQL-запросах.
SELECT POW(2, 3); -- Возвращает 8Некорректные типы аргументов приводят к предупреждениям и неожиданным результатам:
// Неверный тип аргумента
$result = pow("2", "три");
echo $result;Warning: A non-numeric value encountered 1
Переполнение для очень больших чисел:
// Может вернуть INF
$result = pow(10, 1000);
echo $result;INF
Возведение отрицательного числа в дробную степень (например, квадратный корень) возвращает NAN:
$result = pow(-9, 0.5);
echo $result;NAN
- PHP 5.6: Добавлен оператор возведения в степень ** как синтаксический сахар для функции pow().
- PHP 8.0: Функция pow() теперь корректно выбрасывает исключение ArithmeticError при возведении 0 в отрицательную степень (ранее возвращалось INF).
// Поведение в PHP 8+
try {
$result = pow(0, -2);
} catch (ArithmeticError $e) {
echo $e->getMessage();
}Division by zero
Вычисление сложного процента:
$principal = 1000;
$rate = 0.05;
$years = 3;
$total = $principal * pow(1 + $rate, $years);
echo round($total, 2);1157.63
Создание затухающей анимации с использованием дробной степени:
$progress = 0.8; // от 0 до 1
$damping = 0.5;
$animatedValue = $progress * pow($progress, $damping);
echo $animatedValue;0.71554175279993
Работа с массивом степеней двойки:
$powers = array_map(fn($n) => pow(2, $n), range(0, 5));
print_r($powers);Array
(
[0] => 1
[1] => 2
[2] => 4
[3] => 8
[4] => 16
[5] => 32
)Использование с целочисленными типами большей емкости (PHP 7.4+):
$bigNumber = pow(2, 60);
var_dump($bigNumber);int(1152921504606846976)