Как вывести корень в питоне
Как вычислить квадратный корень в Python
В Python есть предопределенная функция sqrt(), которая возвращает квадратный корень числа. Она определяет квадратный корень из значения, которое умножается на само себя и дает число. Функция sqrt() не используется напрямую для нахождения квадратного корня из заданного числа, поэтому нам нужно использовать математический модуль для вызова функции sqrt() в Python.
Например, квадратный корень из 144 равен 12.
Использование метода math.sqrt()
Функция sqrt() – это встроенная функция, которая возвращает квадратный корень из любого числа. Ниже приведены шаги, чтобы найти квадратный корень из числа.
Давайте напишем программу на Python.
Давайте создадим программу на Python, которая находит квадратный корень десятичных чисел.
В следующей программе мы прочитали число от пользователя и нашли квадратный корень.
Использование функции math.pow()
Pow() – это встроенная функция, которая используется в Python для возврата степени числа. У него два параметра. Первый параметр определяет число, а второй параметр определяет увеличение мощности до этого числа.
Использование оператора **
Мы также можем использовать оператор экспоненты, чтобы найти квадратный корень из числа. Оператор может применяться между двумя операндами. Например, x ** y. Это означает, что левый операнд возведен в степень правого.
Ниже приведены шаги, чтобы найти квадратный корень из числа.
Давайте реализуем вышеуказанные шаги.
Как мы видим в приведенном выше примере, сначала мы берем ввод(число) от пользователя, а затем используем оператор степени **, чтобы узнать степень числа. Где 0,5 равно √(символ корня), чтобы увеличить степень данного числа.
Давайте создадим программу Python, которая находит квадратный корень из указанного диапазона, в следующей программе вычисление из всех чисел от 0 до 50.
Python sqrt (): практическое руководство
Если вы не гений математики, вы не запомните все квадратные корни. И даже если вы это сделали, кто-то другой, глядя на ваш код, может не знать, что вы. Это означает, что им, возможно, придётся перепроверить, что вы написали правильные квадратные корни — это просто переделка работы.
Если вы использовали функцию квадратного корня Python, ясно, что вычисляется квадратный корень. Другой человек, смотрящий на ваш код, знает, что он точен. В качестве дополнительного бонуса никто не должен открывать свой калькулятор!
Что такое Python sqrt ()?
Независимо от того, используете ли вы теорему Пифагора или работаете над квадратным уравнением, функция квадратного корня Python — sqrt () — может помочь вам решить ваши проблемы. Как вы уже догадались, sqrt()вернёт квадрат числа, переданного вами в качестве параметра.
sqrt()Метод может быть полезен, потому что это быстро и точно. В этом кратком руководстве рассматривается, что вы можете передать в качестве параметра sqrt(), способы обхода недопустимых параметров и пример, который поможет вам понять. Вы можете получить квадратный корень из числа, возведя его в степень 0,5 с помощью оператора экспоненты Python (**) или pow()функции.
Когда вы работаете с несколькими числами, требующими квадратного корня, вы обнаружите, что использование sqrt()функции более элегантно, чем использование нескольких операторов экспоненты с «0,5». Кроме того, это более понятно. Можно легко забыть или пропустить лишнюю звёздочку (’*’), которая полностью превратит оператор в оператор умножения, что даст вам совершенно другой результат.
Синтаксис функции квадратного корня Python
Общий синтаксис, используемый для вызова sqrt()функции:
В приведённом выше фрагменте кода «x» — это число, квадратный корень которого вы хотите вычислить. Число, которое вы передаёте в качестве параметра функции извлечения квадратного корня, может быть больше или равно 0. Обратите внимание, что вы можете передать только одно число.
Но к чему относится «математическая» часть синтаксиса выше? Математический модуль — это библиотека Python, которая содержит множество полезных математических функций, одна из которых является sqrt()функцией. Для использования sqrt()вам нужно будет импортировать математический модуль, поскольку именно там хранится код для выполнения функции. Приставляя «math» к префиксу sqrt(), компилятор знает, что вы используете функцию sqrt(), принадлежащую библиотеке «math».
Способ импорта математического модуля состоит в том, чтобы написать ключевое слово «импорт» вместе с именем модуля — в данном случае «математика». Оператор импорта — это простая строка, которую вы пишете перед кодом, содержащим sqrt()функцию:
Результатом функции извлечения квадратного корня является число с плавающей запятой (float). Например, результатом использования sqrt()81 будет 9,0, что является числом с плавающей запятой.
Включите математический оператор импорта в начало любого сеанса файла или терминала / консоли, который содержит код, который использует sqrt().
Как использовать метод Python sqrt ()
Вы можете передавать положительные числа типа с плавающей запятой или целочисленного типа int. В предыдущем примере мы видели int 81 в качестве параметра. Но мы также можем передать число с плавающей запятой, 70,5, например:
Результат этого расчёта: 8,916277250063503. Как видите, результат довольно точный. Теперь вы можете понять, почему имеет смысл, что результат всегда будет двойным, даже если квадратный корень из числа такой же простой, как «9».
Вы также можете передать переменную, представляющую число:
yourValue= 90
math.sqrt(yourValue)
# 9.486832980505138
И вы также можете сохранить результат в переменной:
Сохранение этого в переменной упростит вывод на экран:
Работа с отрицательными числами с помощью abs ()
Квадратный корень из любого числа не может быть отрицательным. Это потому, что квадрат является произведением самого числа, и если вы умножите два отрицательных числа, отрицательные числа уравняются, и результат всегда будет положительным. Если вы попытаетесь передать отрицательное число sqrt(), вы получите сообщение об ошибке, и ваш расчёт не будет выполнен.
abs()Функция возвращает абсолютное значение заданного числа. Абсолютное значение −9 будет 9. Аналогично, абсолютное значение 9 равно 9. Поскольку sqrt()оно предназначено для работы с положительными числами, отрицательное число вызовет исключение ValueError.
Предположим, вы передаёте переменные sqrt()и не можете узнать, все ли они положительны, не просматривая длинные строки кода, чтобы найти значения переменных. В то же время вы также не хотите, чтобы вам выдавалось исключение ValueError. Даже если вы посмотрите, может войти другой программист и непреднамеренно добавить отрицательную переменную, тогда ваш код выдаст ошибку. Чтобы предотвратить это безумие, вы можете использовать abs():
abs()Функция будет принимать в своём значении и перевести его к абсолютному значению (81 в данном случае). Затем в sqrt()функцию будет передано неотрицательное абсолютное значение, что нам и нужно, чтобы не получить надоедливых ошибок!
Понимание списка и sqrt ()
Что делать, если у вас есть несколько чисел, квадратные корни которых вы хотели бы получить? Вы можете вычислить квадратный корень для всего в одной строке с помощью встроенного цикла for, который называется составлением списка.
Сначала составьте список значений, квадратные корни которых вы хотите получить.
Во-вторых, давайте переберём список с помощью выражения для цикла, чтобы получить квадратный корень для каждого значения. Синтаксис встроенного выражения цикла for — это число в числах, где «число» — это каждый член списка, который мы назвали «числами». Мы сохраним результаты в списке, который мы назовём «квадратные числа».
squaredNumbers = [ math.sqrt(number) for number in numbers]
Используйте print()оператор, чтобы увидеть результаты возведения списка чисел в квадрат.
for-утверждения и sqrt ()
Вы также можете использовать типичный цикл for. Хотя использование типичного цикла for означает, что вам нужно написать больше строк кода, чем в приведённом выше примере, некоторые люди могут легче читать циклы for.
Сначала объявите список, в котором вы хотите сохранить вычисленные значения.
Мы будем использовать тот же список значений («числа»), что и в предыдущем примере, и перебираем каждый из его элементов, которые мы назвали «число».
for number in numbers:
squaredNumbers.append(math.sqrt(number))
Теперь, если вы распечатаете этот новый список чисел в квадрате, вы получите тот же результат, что и в предыдущем примере.
Пример с sqrt (): диагональные расстояния
Есть много вариантов использования sqrt(). Одним из примеров является то, что вы можете использовать его для определения диагонального расстояния между двумя точками, которые пересекаются под прямым углом, например, углами улиц или точками на поле или на схеме.
Это потому, что диагональное расстояние между двумя точками, которые пересекаются под прямым углом, было бы эквивалентно гипотенузе треугольника, и для этого вы можете использовать теорему Пифагора (a 2 + b 2 ) = c 2, которая, как правило, использует квадратные корни. Эта формула очень удобна, потому что на городских улицах, домашних чертежах и в полях можно легко получить измерения длины и ширины, но не для диагоналей между ними.
Вам нужно будет использовать sqrt()гипотенузу c 2, чтобы получить длину. Другой способ переписать теорему Пифагора — c = √a 2 + b 2. Давайте представим, что мы проехали по трассе в нашем местном парке в форме треугольника.
Мы пробежали по длине и ширине, а затем вернулись к исходной точке. Чтобы точно подсчитать, сколько футов вы пробежали, вы можете рассчитать футы диагонального пути, который вы пересекаете, используя длину и ширину (чью длину в футах вы можете сохранить как переменные «a» и «b») парк:
Результатом будет 47.43416490252569. Итак, когда вы добавляете это к двум другим длинам, вы знаете, и вот оно. Общее количество футов, которое вы пробежали по дорожке в форме прямоугольного треугольника в парке.
Что ещё можно сделать с помощью Sqrt ()?
Теперь, когда вы знаете основы, возможности безграничны. Например:
В этой статье вы узнали, как использовать sqrt()списки с положительными и отрицательными числами и как переработать теорему Пифагора, чтобы выполнить четыре математических вычисления sqrt().
Целочисленный квадратный корень в python
есть ли целочисленный квадратный корень где-нибудь в python или в стандартных библиотеках? Я хочу, чтобы он был точным (т. е. возвращал целое число) и лаял, если нет решения.
в тот момент я свернул свой собственный наивный:
но это уродливо, и я действительно не доверяю ему для больших целых чисел. Я мог бы перебирать квадраты и сдаваться, если я превысил значение, но я предполагаю, что это будет медленным, чтобы сделать что-то подобное. А еще я думаю, что, наверное, изобретая колесо, что-то вроде этого наверняка уже должно существовать в python.
11 ответов
метод Ньютона отлично работает на целых числах:
Это возвращает наибольшее целое число x для чего x * x не превышает n. Если вы хотите проверить, является ли результат именно квадратным корнем, просто выполните умножение, чтобы проверить, если n является идеальным квадратом.
Я обсуждаю этот алгоритм и три других алгоритма вычисления квадратных корней, at мой блог.
извините за очень поздний ответ, я просто наткнулся на эту страницу. В случае, если кто-то посещает эту страницу в будущем, модуль python gmpy2 предназначен для работы с очень большими входами и включает в себя, среди прочего, целочисленную функцию квадратного корня.
конечно, все будет иметь тег «mpz», но mpz совместимы с int:
посмотреть мой другой ответ для обсуждения этого метода производительность относительно некоторых других ответов на этот вопрос.
алгоритм квадратного корня длинной руки
оказывается, существует алгоритм вычисления квадратных корней, который вы можете вычислить вручную, что-то вроде длинного деления. Каждая итерация алгоритма производит ровно одну цифру полученного квадратного корня, потребляя две цифры числа, квадратный корень которого вы ищете. В то время как «длинная рука» версия алгоритма указана в десятичном формате, она работает в любой базе, причем двоичный код прост в реализации и возможно, самый быстрый для выполнения (в зависимости от базового представления bignum).
поскольку этот алгоритм работает с числами цифра за цифрой, он дает точные результаты для сколь угодно больших совершенных квадратов, а для несовершенных квадратов может производить столько цифр точности (справа от десятичного знака), сколько требуется.
есть две хорошие рецензии на «доктора математики» сайт, объясняющие алгоритм:
и вот реализация в Python:
вы можете легко изменить эту функцию, чтобы провести дополнительные итерации для вычисления дробной части квадратного корня. Меня больше всего интересовали вычисления корней больших совершенных квадратов.
Я не уверен, как это сравнивается с алгоритмом «метода целочисленного Ньютона». Я подозреваю, что метод Ньютона быстрее, поскольку он в принципе может генерировать несколько битов решения за одну итерацию, в то время как алгоритм» длинной руки » генерирует ровно один бит решения за итерацию.
вот очень простая реализация:
это просто двоичный поиск. Инициализируйте значение m чтобы быть наибольшей мощностью 2, которая не превышает квадратный корень, затем проверьте, можно ли установить каждый меньший бит, сохраняя результат не больше квадратного корня. (Проверяйте биты по одному, в порядке убывания.)
для достаточно больших значений n (скажем, около 10**6000 или 20000 биты), это, кажется, быть:
все эти подходы успешно работают на входах такого размера, но на моей машине эта функция занимает около 1,5 секунд, в то время как @Nibot занимает около 0,9 секунд, @user448810 занимает около 19 секунд, а встроенный метод gmpy2 занимает менее миллисекунды(!). Пример:
эта функция может быть легко обобщена, хотя это не так приятно, потому что у меня нет столь же точного начального предположения для m :
однако обратите внимание, что gmpy2 также i_root метод.
Edit: спасибо @Greggo за указание на то, что i_sqrt функция может быть переписана, чтобы избежать использования каких-либо умножения. это дает впечатляющий прирост производительности!
Как вычислить квадратный корень в Python
Чтобы вычислить квадратный корень в Python, у нас есть в основном 5 методов или способов. Самый распространенный или самый простой способ-это использование функции математического модуля sqrt.
Как вычислить квадратный корень в Python
В языке непрофессионалов квадратный корень может быть определен как Квадратный корень числа-это значение, которое при умножении на себя дает число. В Python или любом другом языке программирования для вычисления квадратного корня числа у нас есть разные методы. И в этом уроке мы постараемся охватить все методы вычисления квадратного корня из числа.
Для вычисления квадратного корня в Python у нас есть в основном 5 методов или способов. Самый распространенный или самый простой способ-это использование функции математического модуля sqrt. Функция Python sqrt встроена в математический модуль, вы должны импортировать математический пакет (модуль). Функция sqrt в языке программирования python, возвращающая квадратный корень из любого числа (число > 0).
Различные способы вычисления квадратного корня в Python
Как правило, у нас есть способы вычисления квадратного корня в Python, которые упоминаются ниже:
- Использование метода math.sqrt() Использование оператора ** Для вещественных или комплексных чисел с использованием математического модуля Использование цикла Python Квадратный корень из числа с помощью pow()
Вычисление квадратного корня в Python С помощью функции sqrt()
Математический модуль Python имеет дело с математическими функциями и вычислениями. Функция sqrt() в математическом модуле используется для вычисления квадратного корня из заданного числа.
Синтаксис
Ниже приведен синтаксис функции Python sqrt ().
Параметры
номер – Здесь num может быть любым положительным числом, квадратный корень которого вы хотите.
Возвращаемое значение функции sqrt()
метод sqrt() в Python вернет квадратный корень из заданного числа с плавающей запятой. Если значение меньше 0, то он вернет ошибку времени выполнения.
Совместимость функций Python sqrt()
Примеры Вычисления Квадратного Корня С Помощью Функции sqrt()
Давайте рассмотрим несколько примеров вычисления квадратного корня Python с помощью функции sqrt ().
Пример 1: Вычисление квадратного корня из положительного целого числа
Пример 2: Вычисление квадратного корня из числа с плавающей запятой
Пример 3: Вычисление квадратного корня из 0
Вычисление квадратного корня из числа в Python
Вступление
Квадратный корень из числа – очень распространенная математическая функция, используемая во всех областях науки – физике, математике, информатике и т.д. Квадратные корни чисел и выражений очень часто встречаются в формулах во всех областях науки, и особенно в том, как мы представляем реальность – моделируя то, что мы можем наблюдать с помощью исчисления.
В этой статье мы рассмотрим различные способы вычисления квадратного корня из числа в Python. Наконец, мы проведем тест производительности с постоянными и случайными числами, а также со списками случайных чисел, чтобы проверить все подходы.
Вычисление квадратного корня в Python с помощью NumPy
NumPy – это библиотека научных вычислений, которая присутствовала во многих приложениях и вариантах использования. Естественно, в нем есть множество оболочек математических функций в качестве вспомогательных методов.
Если она еще не установлена, вы можете установить ее через pip:
В терминах NumPy функция sqrt() вычисляет квадратный корень из числа и возвращает результат:
Помимо использования одной переменной в качестве аргумента, sqrt() также может анализировать списки и возвращать список квадратных корней:
Функция sqrt(), однако, имеет ограничение – она не может вычислять квадратный корень из отрицательного числа, поскольку операция квадратного корня с действительными числами определена только для положительных чисел.
Попытка вычислить квадратный корень из отрицательного числа приведет к появлению предупреждения и значению nan:
Вычисление квадратного корня из комплексного числа с помощью Numpy
К счастью, NumPy не ограничивается работой только с действительными числами – он также может работать с комплексными числами:
Если в списке есть хотя бы одно комплексное число, все числа будут приведены и обработаны как сложные, поэтому можно добавить даже отрицательные целые числа:
Модуль math в Python
Модуль math – это стандартный модуль, упакованный с Python. Он всегда доступен, но должен быть импортирован и предоставляет оболочки для некоторых общих функций, таких как квадратный корень, полномочия и т.д.:
Функция sqrt() модуля math- это простая функция, которая возвращает квадратный корень из любого положительного числа:
В отличие от функции sqrt() NumPy, она может работать только с одним элементом, поэтому, если вы хотите вычислить квадратный корень из всех элементов в списке, вам придется использовать цикл for или генератор списка:
В обоих случаях список корней будет содержать:
math.pow()
Квадратный корень из числа также может быть вычислен путем возведения числа в степень ½:
Так что на самом деле, нахождение квадратного корня из числа может быть выражено как увеличение числа до степени ½. math.pow() принимает два аргумента – основание и показатель степени, и увеличивает основание до степени экспоненты:
Естественно, это приводит к:
Оператор **
Оператор ** является двоичным оператором, что означает, что он работает с двумя значениями, как и обычное умножение с помощью *. Однако, поскольку это оператор, используемый для возведения в степень, мы повышаем его левый аргумент до степени его правого аргумента.
Этот подход может быть использован в той же форме, что и предыдущий:
И это также приводит к:
Функция pow()
В Python есть еще один встроенный метод pow(), который не требует импорта математического модуля. Этот метод отличается от метода math.pow() внутренне.
math.pow() неявно преобразует элементы в двойные, в то время как pow() использует внутреннюю реализацию объекта, основанную на операторе **. Хотя это различие в реализации может оправдать использование того или иного в определенных контекстах, если вы просто вычисляете квадратный корень из числа, вы на самом деле не увидите разницы:
Контрольный показатель производительности
Итак, какой из них дает наилучшую производительность, и какой из них вы должны выбрать? Как обычно, нет одного явного победителя, и это зависит от использования методов. А именно, если вы работаете с постоянными числами, случайными числами или массивом случайных чисел в большем масштабе – эти методы будут работать по-другому.
Давайте проверим их все на постоянных числах, случайных числах и массивах случайных чисел:
Мы прошли все описанные выше методы через один и тот же тест – постоянное число (которое, вероятно, будет кэшировано для оптимизации), случайное число на каждой из 100 тыс. итераций и список из 100 случайных чисел.
Примечание: Важны только относительные числа в каждом тесте по сравнению с другими методами в этом тесте, поскольку для генерации 100 случайных чисел требуется больше времени, чем при использовании (кэшированного) постоянного значения.
Выполнение этого фрагмента кода приводит к:
С постоянными числами – функции math.pow(), math.sqrt() и pow() значительно превосходят функцию Numpy sqrt(), поскольку они могут лучше использовать кэширование в процессоре на уровне языка.
Со случайными числами кэширование работает не так хорошо, и мы видим меньшие расхождения.
Со списками случайных чисел np.sqrt() значительно превосходит все три встроенных метода, и оператор ** работает в одной и той же области действия.
В зависимости от конкретного ввода, с которым вы имеете дело, вы будете выбирать между этими функциями. Хотя может показаться, что все они будут работать хорошо, и хотя в большинстве случаев это не будет иметь большого значения, при работе с огромными наборами данных даже сокращение времени обработки на 10 % может помочь в долгосрочной перспективе.
В зависимости от обрабатываемых данных – протестируйте различные подходы на своем локальном компьютере.
Вывод
В этой короткой статье мы рассмотрели несколько способов вычисления квадратного корня из числа в Python.
Мы рассмотрели функции pow() и sqrt() математического модуля, а также встроенную функцию pow(), функцию Numpy sqrt() и оператор **. Наконец, мы провели сравнительный анализ методов для сравнения их производительности на различных типах входных данных – постоянных числах, случайных числах и списках случайных чисел.