/
Вопросы и ответы
/
Python
/

Как работает функция pow в python?

Как работает функция pow в python?

3 года назад

Nikolai Gagarinov

Ответы

3

Когда параметр z указан, функция pow(x, y, z) вернет остаток от деления результата возведения x в степень y на z. Например, если x = 3, y = 2 и z = 5, то функция pow(3, 2, 5) вернет остаток от деления 9 на 5, то есть 4.

Если параметр z не указан, функция pow(x, y) просто вернет результат возведения x в степень y.

Для более наглядного представления, вот несколько примеров:

1
2
3
print(pow(2, 3))  # Вывод: 8, 2^3 = 8
print(pow(2, 3, 5))  # Вывод: 3, 2^3 = 8, 8 mod 5 = 3
print(pow(3, 2, 5))  # Вывод: 4, 3^2 = 9, 9 mod 5 = 4

Когда третий параметр z указывается, функция pow() возвращает остаток от деления результата возведения в степень на этот параметр. Если третий параметр не указан, функция просто возвращает результат возведения числа в степень "x в степени y".

3 года назад

Nikolai Gagarinov

0

pow(2,3,5)

3 года назад

Rolton Rolton

0

pow(x, y) возводит x в степень y — так же, как оператор **:

1
2
3
4
print(pow(2, 10))    # => 1024
print(2 ** 10)       # => 1024
print(pow(9, 0.5))   # => 3.0 — квадратный корень
print(pow(2, -1))    # => 0.5

Третий аргумент: остаток от деления

pow(x, y, mod) возвращает остаток от деления x ** y на mod:

1
print(pow(3, 2, 5))  # => 4, потому что 3 ** 2 = 9, а 9 % 5 = 4

Результат тот же, что у (x ** y) % mod, но pow считает быстрее и не создаёт огромное промежуточное число. Это важно в криптографии и олимпиадных задачах:

1
print(pow(7, 10**18, 13))  # => 9 — мгновенно

(7 ** 10**18) % 13 пришлось бы считать очень долго: число 7 ** 10**18 не помещается в память.

С Python 3.8 третий аргумент принимает отрицательную степень — так находят обратный элемент по модулю:

1
print(pow(3, -1, 7))  # => 5, потому что 3 * 5 % 7 == 1

pow и math.pow

pow / **math.pow
Результат для целыхцелое: pow(2, 3) → 8всегда float: 8.0
Большие числалюбые, без потери точноститеряет точность после 2⁵³
Третий аргументестьнет
1
2
import math
print(math.pow(2, 3))  # => 8.0

Арифметику и встроенные функции разбирают в бесплатном курсе «Основы Python».

8 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845