Модуль math в Python: 6 распространённых вычислений, которые можно выполнить

Модуль math в Python: 6 распространённых вычислений, которые можно выполнить


Перейти по ссылкам

  • Константы
  • Тригонометрические функции
  • Логарифмические и экспоненциальные функции
  • Числовые вычисления
  • Суммы и произведения
  • Комбинаторные функции

Существует распространённая шутка, что Python отлично подходит в качестве калькулятора в интерактивном режиме. Вы можете сделать его ещё лучше с помощью встроенного модуля math, который содержит множество тех же математических функций, что вы найдете на карманном научном или графическом калькуляторе.

Константы

Одна из полезных функций модуля math в Python — это быстрый доступ к математическим константам. Вы можете сделать Python более эффективным в роли научного калькулятора, используя эти же функции с числовыми приближениями. Наиболее известной, возможно, является число π (3.14159 и т.д.). Вам не нужно запоминать все цифры. Python сделает это за вас.

Давайте используем число пи для расчета площади круга. Предположим, у нас есть пицца диаметром 12 дюймов, и мы хотим узнать, сколько пиццы у нас на самом деле в терминах площади.

Сначала мы импортируем библиотеку math:

import math     

Мы сохраним радиус в переменной. Радиус равен половине диаметра круга, поэтому у пиццы диаметром 12 дюймов радиус будет 6 дюймов.

radius = 6     

Формула площади круга: пи, умноженное на квадрат радиуса. В Python это будет:

area_circ = math.pi * radius**2      

Двойная звездочка — это способ обозначения степеней в Python.

Результат таков: круглая пицца диаметром 12 дюймов содержит около 113 квадратных дюймов настоящей пиццы. Вот почему, по данным NPR, вам стоит заказывать пиццу побольше.

Еще одной распространенной константой, которую вы можете использовать в Python, является e, или 2.718281828459045. Это основание натурального логарифма и оно часто используется для экспоненциального роста, например, при расчете сложных процентов.

Предположим, вы хотите инвестировать 5 000 долларов с непрерывным начислением процентов по ставке два процента в течение 5 лет. Формула заключается в умножении основной суммы на e, возведённое в степень, равную произведению процентной ставки и времени.

Вот это на Python:

principal = 5000 rate = .02 time = 5 compound_interest = principal * math.e**(rate * time) compound_interest      

У вас будет примерно 5 525 долларов в конце пяти лет. Эти математические функции особенно полезны в интерактивном режиме, что является одной из причин, по которой Python может заменить ваше приложение калькулятора. Если вы используете эти функции в скрипте, вам потребуется команда print, например:

print(math.pi)     

В интерактивном режиме делать это не обязательно, так как можно просто ввести команду в приглашении, чтобы получить её значение. На этом и будет основано дальнейшее изложение статьи для упрощения.

Тригонометрические функции

Тригонометрические функции являются основным назначением научных калькуляторов. С ними легко работать с помощью математической библиотеки. Тригонометрические функции ожидают значения в радианах, а не в градусах, с которыми вы, возможно, более знакомы, но их легко преобразовать между собой, используя встроенные функции radians и degrees.

Давайте преобразуем 45 градусов в радианы:

math.radians(45)     

Результат равен 0.7853981633974483

В интерактивной сессии мы можем преобразовать это обратно в градусы, используя символ _ (подчеркивание), который хранит значение последнего корректно вычисленного результата.

math.degrees(_)     

Это даст нам обратно 45.

Давайте сохраним нашу меру в радианах в переменной под названием «тета», греческой переменной, которая обычно используется для обозначения углов в радианах.

theta = math.radians(45)

Давайте возьмём синус:

math.sin(theta)     

Мы также можем взять косинус

math.cos(theta)     

И касательная:

math.tan(theta)     

Вы можете вернуть исходные значения с помощью обратных значений или аркзначений. Например, для вычисления арксинуса:

sine = math.sine(theta) math.asin(sine)     

Сравните арксинус с исходным значением угла. Мы можем проделать то же самое с другими тригонометрическими соотношениями и их обратными функциями.

cosine = math.cos(theta) math.acos(cosine) tangent = math.tan(theta) math.atan(tangent)     

Логарифмические и экспоненциальные функции

Операции с показателями степени и логарифмами являются еще одной важной частью математики.

Как видно выше, двойная звездочка (**) возводит число в степень.

2**2 9**2     

Вы также можете использовать функцию pow, чтобы возвести число в степень. Например, чтобы возвести число 9 в квадрат:

math.pow(9,2)      

Это даст ответ 81

Чтобы получить обратную функцию, можно использовать логарифм. Функция log по умолчанию использует e в качестве основания, константу, которую мы видели ранее. Она также известна как напериев логарифм, в честь Джона Напьера, который открыл логарифм.

Давайте возведём e в пятую степень.

math.e**5

Это даст нам 148.41315910257657

Мы можем обратить это с помощью логарифмической функции:

math.log(148.41315910257657)     

Это вернёт нас к 5.

Это также будет работать с другими основаниями.

9**2 math.log(81,9)

Хороший способ узнать, сколько бит требуется для хранения числа, — использовать логарифм по основанию 2:

math.log(2048,2)     

Это даст нам 11. Также есть функция log2 как сокращение:

math.log2(2048)     

Существует также сокращение для общего логарифма или логарифма Бриггса, названного в честь Генри Бриггса, который популяризировал логарифм с основанием 10. До того как калькуляторы стали широко доступны, таблицы этих логарифмов публиковались в книгах для ускорения умножения и деления. В старых учебниках по математике и в отдельных изданиях можно было найти таблицы как натуральных, так и общих логарифмов. Они использовали свойство логарифмов, согласно которому сложение и вычитание логарифмов соответствует умножению и делению этих чисел (линейки для вычислений также работали по этому принципу).

Давайте умножим 23 и 42, используя логарифмы

math.log10(23) + math.log10(42)     

Чтобы найти произведение, возведите 10 в степень суммы двух логарифмов.

10**_     

Это также работает для натуральных логарифмов:

math.log(23) + math.log(42) math.e**_      

Это свойство также работает для вычитания:

math.log10(966) - math.log10(42)     

Это даст нам 23. Насколько логарифмы упростили умножение и деление, настолько появление калькуляторов упростило эти операции ещё больше, сделав логарифмы во многом устаревшими для большинства неспециалистов. Они всё ещё полезны в некоторых областях, например при работе с экспоненциальными функциями и для того, чтобы сделать их линейными, чтобы на них можно было применить линейную регрессию.

Числовые вычисления

С помощью модуля math в Python можно выполнять и другие различные числовые вычисления.

Вы можете вычислить квадратный корень числа с помощью функции sqrt:

math.sqrt(81)

Это, конечно, даст вам 9. Вы также можете взять кубический корень числа с помощью cbrt:

math.cbrt(81)     

Это даст нам десятичное приближение числа 4,326748710922225.

Функция pow возведет число в степень, аналогично оператору **.

math.pow(3,2)     

Это возведёт 3 в квадрат и даст 9. Вы также можете извлекать корни n-й степени, возводя число в дробную степень.

math.pow(3,1/2)     

Это также будет иметь эффект возведения 3 в квадрат. Это свойство полезно для извлечения корней выше 3. Чтобы извлечь восьмой корень из 1024.

math.pow(1024,1/8)     

Это дает другое десятичное приближение. Если вам нужен точный ответ, вам понадобится система компьютерной алгебры, такая как библиотека SymPy.

Некоторые другие полезные функции — это функции потолка и пола. Функция потолка округляет число до ближайшего целого сверху, а функция пола — до наименьшего целого числа.

math.ceiling(42.5)     

Это вернёт 43. Давайте попробуем это на полу:

math.floor(42.5)     

Это вернёт 42.

Это похоже на оператор/(двойной слэш), встроенный в Python, который выполняет целочисленное деление без остатка (и который раньше был поведением деления по умолчанию в Python).

Функция остатка также возвращает остаток от своих аргументов.

Например, чтобы получить остаток от деления 5 на 4:

math.remainder(5,4)      

Чтобы полностью удалить дробную часть, используйте функцию trunc.

math.trunc(42.5)     

Это вернет 42.

Суммы и произведения

Чтобы вернуть сумму элементов в массиве или кортеже, используйте функцию fsum:

math.fsum([2.5,4,5])

Это даёт 11,5.

Чтобы получить произведение чисел в кортеже или массиве, используйте функцию prod:

math.prod([2.5,4,5]      

Это вернет 50.

Комбинаторные функции

Комбинаторные функции полезны для быстрого подсчета предметов и часто встречаются в теории вероятностей и дискретной математике.

Факториал, обозначаемый восклицательным знаком (!), — это число, умноженное на число минус 1, затем на число минус 2 и так далее. Факториал числа 0 равен 1.

Например, факториал числа 5 или 5! равен 5 * 4 * 3 * 2 * 1.

Чтобы вычислить 5!, используйте функцию факториала:

math.factorial(5)

Перестановки — это способ подсчета комбинаций, когда требуется определенный порядок. Предположим, вы хотите расположить восемь книг на полке в определенном порядке по три книги. Для этого вы бы использовали функцию perm:

math.perm(8,3)      

Это даст 336.

Комбинации похожи, но используются, когда порядок не имеет значения. Чтобы посчитать количество способов, которыми можно вытащить 5 карт из хорошо перемешанной колоды из 52 карт, можно использовать функцию comb.

math.comb(52,5)      

Это даёт более 2 миллионов возможных комбинаций карт, что является большим количеством способов проиграть в покер.


Библиотека math в Python содержит множество функций, которые делают ваши вычисления проще и интереснее. Не удивительно, что этот язык популярен, даже будучи усовершенствованным калькулятором.

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *