Модуль 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 содержит множество функций, которые делают ваши вычисления проще и интереснее. Не удивительно, что этот язык популярен, даже будучи усовершенствованным калькулятором.







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