Содержание
Краткая памятка по извлечению корней в Python
- Импортируйте модуль math для использования math.sqrt().
- Для квадратного корня используйте math.sqrt(x) или x ** 0.5.
- Для кубического корня используйте x ** (1/3).
- Для корня n-степени используйте x ** (1/n).
- Для отрицательных чисел используйте модуль cmath.
- Помните, что math.sqrt() возвращает float.
- Оператор ** работает с любыми числами, включая отрицательные (с осторожностью).
- Для точных вычислений с большими числами используйте decimal.Decimal.
- Обрабатывайте исключения при работе с некорректными входными данными.
- Тестируйте код на граничных значениях (ноль, единица, отрицательные числа).
Что такое квадратный корень
Операция нахождения числа «Y» называется извлечением квадратного корня из «X». В математике для её записи применяют знак радикала:
**
Нотация питона отличается в обоих случаях, и возведение в степень записывается при помощи оператора «»:
А квадратный корень в питоне представлен в виде функции sqrt(), которая существует в рамках модуля math. Поэтому, чтобы начать работу с корнями, модуль math нужно предварительно импортировать:
Функция sqrt() принимает один параметр — то число, из которого требуется извлечь квадратный корень. Тип данных возвращаемого значения — float.
Положительное число
Именно на работу с неотрицательными числами «заточена» функция sqrt(). Если число больше или равно нулю, то неважно, какой у него тип. Вы можете извлекать корень из целых чисел:
Легко проверить корректность полученных результатов с помощью обратной операции возведения в степень:
Отрицательное число
Функция sqrt() не принимает отрицательных аргументов. Только положительные целые числа, вещественные числа и ноль.
Такая работа функции идёт вразрез с математическим определением. В математике корень спокойно извлекается из чисел меньше 0. Вот только результат получается комплексным, а таким он нужен для относительно узкого круга реальных задач, вроде расчетов в сфере электроэнергетики или физики волновых явлений.
Поэтому, если передадите отрицательное число в sqrt(), то получите ошибку:
Ноль
Функция sqrt() корректно отрабатывает с нулём на входе. Результат тривиален и ожидаем:
Математическое представление квадрата числа
Все мы в детстве узнали, что, когда число умножается само на себя, мы получаем его квадрат. Также квадрат числа можно представить как многократное умножение этого числа. Попробуем разобраться в этом на примере.
Предположим, мы хотим получить квадрат 5. Если мы умножим число (в данном случае 5) на 5, мы получим квадрат этого числа. Для обозначения квадрата числа используется следующая запись:52 = 25
При программировании на Python довольно часто возникает необходимость использовать функцию извлечения квадратного корня. Есть несколько способов найти квадратный корень числа в Python.
Способы извлечения корня
В языке программирования Python 3 существует три способа извлечения корней:
- Использование функции sqrt из стандартной математической библиотеки math.
- Операция возведения в степень **
- Применение функции pow(x, n)
Чтобы воспользоваться первым способом, необходимо вначале импортировать sqrt из модуля math. Это делается с помощью ключевого слова import: from math import sqrt. При помощи этой функции можно извлекать только квадратный корень из числа. Приведем пример:
Если же нам нужно вычислить в Python корень квадратный из суммы квадратов, то можно воспользоваться функцией hypot из модуля math. Берется сумма квадратов аргументов функции, из нее получается корень. Аргументов у функции два.
Еще одним, чуть более универсальным методом, будет использование возведения в степень. Известно, что для того, чтобы взять корень n из числа, необходимо возвести его в степень 1/n. Соответственно, извлечение квадратного корня из числа 4 будет выглядеть так:
Обратите внимание, что в Python 2 необходимо ставить точку после единицы, иначе произойдет целочисленное деление, и 1/n == 0, а не нужной нам дроби. В Python 3 можно не ставить точку.
Последний метод использует функцию pow(value, n). Эта функция в качестве аргумента value возьмет число, которое необходимо возвести в степень, а второй аргумент будет отвечать за степень числа. Как и в предыдущем методе, необходимо использовать дробь, для того, чтобы получить корень числа.
Используя оператор возведения в степень
Объяснение: Мы можем использовать оператор «**» в Python, чтобы получить квадратный корень. Любое число, возведенное в степень 0.5, дает нам квадратный корень из этого числа.
Использование ()
Вывод: Квадратный корень из числа 25 это 5.Объяснение: sympy — это модуль Python для символьных вычислений. С помощью функции () мы можем получить квадратный корень из положительных, нулевых, отрицательных и комплексных чисел. Единственная разница между этим и другими методами заключается в том, что, если при использовании () аргумент является целым числом, то результат также является целым числом, в отличие от других способов, в которых возвращаемое значение всегда число с плавающей точкой, независимо от типа данных аргумента.
Какой метод быстрее?
Для того, чтобы определить какой же метод предпочтительнее использовать, напишем программу. Замерять время выполнения будем с помощью метода monotonic библиотеки time.
Как видно, самое быстрое решение — использовать **. На втором месте метод sqrt, а pow — самый медленный. Правда, метод sqrt наиболее нагляден при вычислении в Python квадратных корней.
Таким образом, если критична скорость, то используем **. Если скорость не критична, а важна читаемость кода, то следует использовать sqrt.
Квадратный корень
Для извлечения квадратного корня самым наглядным способом, правда не самым быстрым, будет использование sqrt из модуля math.
Но можно использовать и трюки с возведением в степень 1/2, что тоже будет приводить к нужному результату.
Кубический корень
Само название функции sqrt() намекает нам на то, что она не подходит для извлечения корня степени отличной от двойки. Поэтому для извлечения кубических корней, сначала необходимо вспомнить связь между степенями и корнями, которую продемонстрируем на корне квадратном:
Вышеуказанное соотношение несложно доказать и для других степеней вида 1/n.
В случае с квадратным или кубическим корнем эти операции действительно эквивалентны, но, вообще говоря, в математике извлечение корня и возведение в дробную степень имеют существенные отличия при рациональных степенях вида m/n, где m!= 1. Формально, в дробно-рациональную степень можно возводить только положительные вещественные числа. В противном случае возникают проблемы:
👉 Таким образом, извлечь кубический корень в Python можно следующим образом:
Корень n-степени
Корень n-степени из числа в Python извлекается можно получить двумя способами с помощью возведения в степень 1.0/n:
- С помощью оператора **.
- Используя функцию pow.
Как было проверено выше, оператор ** быстрее. Поэтому его использовать более целесообразно. Приведем пример вычисления кубических корней в Python 3 с помощью этих двух методов:
Корень отрицательного числа
Как видно из результата, оператор ** не выдает исключения и возвращает некорректный результат. Функция pow работает корректно. В результате получаем комплексное число 2j, что является верным.
Решение реальной задачи с использованием sqrt
Корень — дитя геометрии. Когда Пифагор доказал свою знаменитую теорему, людям тут же захотелось вычислять стороны треугольников, проверять прямоту внешних углов и сооружать лестницы нужной длины.
Соотношение a2 + b2 = c2, где «a» и «b» — катеты, а «c» — гипотенуза — естественным образом требует извлекать корни при поиске неизвестной стороны. Python-а под рукой у древних греков и вавилонян не было, поэтому считать приходилось методом приближений. Жизнь стала проще, но расчет теоремы Пифагора никто не отменял и в XXI веке.
📡 Решим задачку про вышку сотовой связи. Заказчик требует рассчитать высоту сооружения, чтобы радиус покрытия был 23 километра. Мы неспешно отходим на заданное расстояние от предполагаемого места строительства и задумчиво смотрим под ноги. В голове появляются очертания треугольника с вершинами:
- Ваше местоположение;
- Центр Земли;
- Пиковая высота вышки.
Расчёт выполнен, результат заказчику предоставлен. Можно идти пить чай и радоваться тому, что теперь ещё больше людей смогут звонить родным и сидеть в интернете.
Часто задаваемые вопросы об извлечении корня в Python
Вопрос: Какой модуль Python используется для извлечения квадратного корня?
Ответ: Для извлечения квадратного корня используется модуль math, а именно функция math.sqrt().
Вопрос: Можно ли извлечь корень из отрицательного числа в Python?
Ответ: Да, с помощью модуля cmath, который работает с комплексными числами.
Вопрос: Как извлечь кубический корень в Python?
Ответ: Кубический корень можно извлечь с помощью оператора возведения в степень: number ** (1/3).
Вопрос: Что быстрее: math.sqrt() или оператор **?
Ответ: math.sqrt() обычно быстрее для квадратных корней, так как оптимизирован для этой операции.
Вопрос: Как извлечь корень n-степени в Python?
Ответ: Используйте оператор возведения в степень: number ** (1/n).
Вопрос: Что произойдет, если передать отрицательное число в math.sqrt()?
Ответ: Будет вызвано исключение ValueError, так как math.sqrt() не работает с отрицательными числами.
Вопрос: Какой тип данных возвращает math.sqrt()?
Ответ: Функция math.sqrt() всегда возвращает число с плавающей точкой (float).
Вопрос: Можно ли извлечь корень из нуля?
Ответ: Да, квадратный корень из нуля равен нулю.
Вопрос: Как округлить результат извлечения корня?
Ответ: Используйте функцию round() или форматирование строк для округления до нужного количества знаков.
Вопрос: Какой модуль использовать для работы с большими числами при извлечении корня?
Ответ: Для работы с большими числами используйте модуль decimal для точных вычислений.





















