- Факториал с использованием программирования на Python
- Использование цикла
- Использование вызова функции рекурсии
- Использование метода factorial() из математического модуля
- Вычисление факториала
- Вычисление факториала с помощью циклов
- Нахождение факториала рекурсией
- Функция factorial модуля math
- Math — математические функции в Python
- Что такое модуль?
- Функции представления чисел
- ceil() и floor() — целая часть числа
- Функция fabs() — абсолютное значение
- factorial() — функция факториала
- Функция fmod() — остаток от деления
- Функция frexp()
- Функция fsum() — точная сумма float
- Функции возведения в степень и логарифма
- Функция exp()
- Функция expm1()
- Функция log() — логарифм числа
- Функция log1p()
- Функция log10()
- Функция pow() — степень числа
- Функция sqrt() — квадратный корень числа
- Тригонометрические функции
- Функция преобразования углов
- Математические константы
Факториал с использованием программирования на Python
Прежде чем мы начнем реализовывать факториал с использованием Python, давайте сначала обсудим, что подразумевает факториал числа.
Теоретически факториал числа определяется как произведение всех положительных целых чисел, меньших или равных числу. Конечно, n! представляет собой факториал целого числа n. В качестве примера рассмотрим факториал числа 6:
Чтобы определить факториал целого числа, можно использовать следующие методы:
- Использование цикла.
- Использование рекурсивного вызова функции.
- Использование предопределенной функции factorial() из математического модуля.
Использование цикла
Приведенный ниже код показывает, как можно вычислить факториал заданного числа с помощью цикла for в программировании на Python.
n=9 fact=1 for i in range(2,n+1): fact=fact*i print("The factorial of ",n," is: ",fact)
The factorial of 9 is: 362880
Использование вызова функции рекурсии
Точно так же мы можем вычислить факториал заданного числа с помощью рекурсивной функции. Посмотрим, как:
n=9 def fact(n): if(n==1 or n==0): return 1 else: return n*fact(n-1) print("The factorial of ",n," is: ",fact(n))
The factorial of 9 is: 362880
Использование метода factorial() из математического модуля
Математический модуль обеспечивает простой способ вычисления факториала любого положительного целого числа. Конечно, в модуле есть предопределенный метод factorial(), который принимает целое число в качестве аргумента и возвращает факториал числа. Давайте посмотрим, как мы можем использовать предопределенный метод и, следовательно, найти факториал. В приведенном ниже коде показано, как можно использовать метод factorial().
import math n=9 print("The factorial of ",n," is: ",math.factorial(n))
The factorial of 9 is: 362880
Кроме того, во всех вышеупомянутых методах мы использовали заранее определенное значение целого числа «n». Также возможно создание пользовательского ввода «n». Этого легко добиться, заменив строку n = 9 на:
n=int(input("Enter the number for calculating factorial"))
Вычисление факториала
Факториалом числа называют произведение всех натуральных чисел до него включительно. Например, факториал числа 5 равен произведению 1 * 2 * 3 * 4 * 5 = 120.
Формула нахождения факториала:
n! = 1 * 2 * … * n,
где n – это число, а n! – факториал этого числа.
Формулу можно представить в таком виде:
т. е. каждый предыдущий множитель меньше на единицу, чем последующий. Или в перевернутом виде, когда каждый следующий меньше предыдущего на единицу:
Для вычисления факториала с помощью цикла можно использовать любую формулу. Для рекурсивного вычисления используется вторая.
Вычисление факториала с помощью циклов
n = int(input()) factorial = 1 while n > 1: factorial *= n n -= 1 print(factorial)
Вычисление факториала с помощью цикла for :
n = int(input()) factorial = 1 for i in range(2, n+1): factorial *= i print(factorial)
Нахождение факториала рекурсией
def fac(n): if n == 1: return 1 return fac(n - 1) * n print(fac(5))
Поток выполнения программы при n = 5:
- Вызов функции fac(5)
- fac(5) вызывает fac(4)
- fac(4) вызывает fac(3)
- fac(3) вызывает fac(2)
- fac(2) вызывает fac(1)
- fac(1) возвращает в fac(2) число 1
- fac(2) возвращает в fac(3) число 1 * 2, т. е. 2
- fac(3) возвращает в fac(4) число 2 * 3, т. е. 6
- fac(4) возвращает в fac(5) число 6 * 4, т. е. 24
- fac(5) возвращает число 24 * 5, т. е. 120 в основную ветку программы
- Число 120 выводится на экран
Функция factorial модуля math
Модуль math языка программирования Python содержит функцию factorial , принимающую в качестве аргумента неотрицательное целое число и возвращающую факториал этого числа:
>>> import math >>> math.factorial(4) 24
Math — математические функции в Python
Эта статья посвящена математическим функциям в Python. Для выполнения математических операций необходим модуль math .
Что такое модуль?
В C и C++ есть заголовочные файлы, в которых хранятся функции, переменные классов и так далее. При включении заголовочных файлов в код появляется возможность не писать лишние строки и не использовать одинаковые функции по несколько раз. Аналогично в Python для этого есть модули, которые включают функции, классы, переменные и скомпилированный код. Модуль содержит группу связанных функций, классов и переменных.
Есть три типа модулей в Python:
- Модули, написанные на Python ( .py ).
- Модули, написанные на C и загружаемые динамически ( .dll , .pyd , .so , .sl и так далее).
- Модули, написанные на C , но связанные с интерпретатором.
import sys print(sys.builtin_module_names)
('_ast', '_bisect', '_codecs', '_codecs_cn', '_codecs_hk', '_codecs_iso2022', '_codecs_jp', '_codecs_kr', '_codecs_tw', '_collections', '_csv', '_datetime', '_functools', '_heapq', '_imp', '_io', '_json', '_locale', '_lsprof', '_md5', '_multibytecodec', '_opcode', '_operator', '_pickle', '_random', '_sha1', '_sha256', '_sha512', '_sre', '_stat', '_string', '_struct', '_symtable', '_thread', '_tracemalloc', '_warnings', '_weakref', '_winapi', 'array', 'atexit', 'audioop', 'binascii', 'builtins', 'cmath', 'errno', 'faulthandler', 'gc', 'itertools', 'marshal', 'math', 'mmap', 'msvcrt', 'nt', 'parser', 'signal', 'sys', 'time', 'winreg', 'xxsubtype', 'zipimport', 'zlib').
Для получения списка модулей, написанных на C , но связанных с Python, можно использовать следующий код.
Как видно из списка выше, модуль math написан на C , но связан с интерпретатором. Он содержит математические функции и переменные, о которых дальше и пойдет речь.
Функции представления чисел
ceil() и floor() — целая часть числа
Сeil() и floor() — функции общего назначения. Функция ceil округляет число до ближайшего целого в большую сторону. Функция floor убирает цифры десятичных знаков. Обе принимают десятичное число в качестве аргумента и возвращают целое число.
# Импорт модуля math import math # Дробный номер number=8.10 # выводим целую часть числа с округлением к большему print("Верхний предел 8.10 это:",math.ceil(number)) # выводим целую часть числа с округлением к меньшему print("Нижний предел 8.10 это:",math.floor(number))
Верхний предел 8.10 это: 9 Нижний предел 8.10 это: 8
Функция fabs() — абсолютное значение
Функция fabs используется для вычисления абсолютного значения числа. Если число содержит любой отрицательный знак ( — ), то функция убирает его и возвращает положительное дробное число.
# Импорт модуля math import math number = -8.10 # вывод абсолютного значения числа print(math.fabs(number))
factorial() — функция факториала
Эта функция принимает положительное целое число и выводит его факториал.
# Импорт модуля math import math number = 5 # вывод факториала числа print("факториала числа", math.factorial(number))
Примечание: при попытке использовать отрицательное число, возвращается ошибка значения ( Value Error ).
# Импорт модуля math import math number = -5 # вывод факториала числа print("факториала числа", math.factorial(number))
ValueError: factorial() not defined for negative values
Функция fmod() — остаток от деления
Функция fmod(x,y) возвращает x % y . Разница в том, что выражение x % y работает только с целыми числами, а эту функцию можно использовать и для чисел с плавающей точкой.
# Импорт модуля math import math print(math.fmod(5,2)) print(math.fmod(-5,2)) print(math.fmod(-5.2,2)) print(math.fmod(5.2,2))
1.0 -1.0 -1.2000000000000002 1.2000000000000002
Функция frexp()
Эта функция возвращает мантиссу и показатель степени в виде пары ( m,n ) любого числа x , решая следующее уравнение.
# Импорт модуля math import math print(math.frexp(24.8))
Функция fsum() — точная сумма float
Вычисляет точную сумму значений с плавающей точкой в итерируемом объекте и сумму списка или диапазона данных.
# Импорт модуля math import math # сумма списка numbers=[.1,.2,.3,.4,.5,.6,.7,.8,8.9] print("сумма ", numbers, ":", math.fsum(numbers)) # сумма диапазона print("сумма чисел от 1 до 10:", math.fsum(range(1,11)))
сумма [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 8.9] : 12.5 сумма чисел от 1 до 10: 55.0
Функции возведения в степень и логарифма
Функция exp()
Эта функция принимает один параметр в виде дробного числа и возвращает e^x .
# Импорт модуля math import math print("e в степени 5 ", math.exp(5)) print("e в степени 2.5", math.exp(2.5))
e в степени 5 148.4131591025766 e в степени 2.5 12.182493960703473
Функция expm1()
Эта функция работает так же, как и exp , но возвращает exp(x)-1 . Здесь, expm1 значит exm-m-1 , то есть, exp-minus-1 .
# Импорт модуля math import math print(math.exp(5)-1) print(math.expm1(5))
147.4131591025766 147.4131591025766
Функция log() — логарифм числа
Функция log(x[,base]) находит логарифм числа x по основанию e (по умолчанию). base — параметр опциональный. Если нужно вычислить логарифм с определенным основанием, его нужно указать.
# Импорт модуля math import math # логарифм с основанием e print(math.log(2)) # логарифм с указанным основанием (2) print(math.log(64,2))
Функция log1p()
Эта функция похожа на функцию логарифма, но добавляет 1 к x . log1p значит log-1-p , то есть, log-1-plus .
# Импорт модуля math import math print(math.log1p(2))
Функция log10()
Вычисляет логарифм по основанию 10.
# Импорт модуля math import math print(math.log10(1000))
Функция pow() — степень числа
Используется для нахождение степени числа. Синтаксис функции pow(Base, Power) . Она принимает два аргумента: основание и степень.
# Импорт модуля math import math print(math.pow(5,4))
Функция sqrt() — квадратный корень числа
Эта функция используется для нахождения квадратного корня числа. Она принимает число в качестве аргумента и находит его квадратный корень.
# Импорт модуля math import math print(math.sqrt(256))
Тригонометрические функции
В Python есть следующие тригонометрические функции.
Функция | Значение |
---|---|
sin | принимает радиан и возвращает его синус |
cos | принимает радиан и возвращает его косинус |
tan | принимает радиан и возвращает его тангенс |
asin | принимает один параметр и возвращает арксинус (обратный синус) |
acos | принимает один параметр и возвращает арккосинус (обратный косинус) |
atan | принимает один параметр и возвращает арктангенс (обратный тангенс) |
sinh | принимает один параметр и возвращает гиперболический синус |
cosh | принимает один параметр и возвращает гиперболический косинус |
tanh | принимает один параметр и возвращает гиперболический тангенс |
asinh | принимает один параметр и возвращает обратный гиперболический синус |
acosh | принимает один параметр и возвращает обратный гиперболический косинус |
atanh | принимает один параметр и возвращает обратный гиперболический тангенс |
# Импорт модуля math import math # функция синусы print("синус PI/2 :", math.sin(math.pi/2)) # функция косинуса print("косинус 0 :", math.cos(0)) # функция тангенса print("тангенс PI/4 :", math.tan(math.pi/4)) print() # функция арксинуса print("арксинус 0 :", math.acos(0)) # функция арккосинуса print("арккосинус 1 :", math.acos(1)) # функция арктангенса print("арктангенс 0.5 :", math.atan(0.5)) print() # функция гиперболического синуса print("гиперболический синус 1 :", math.sinh(1)) # функция гиперболического косинуса print("гиперболический косинус 0 :", math.cos(0)) # функция гиперболического тангенса print("гиперболический тангенс 1 :", math.tan(1)) print() # функция обратного гиперболического синуса print("обратный гиперболический синус 1 :", math.acosh(1)) # функция обратного гиперболического косинуса print("обратный гиперболический косинус 1 :", math.acosh(1)) # функция обратного гиперболического тангенса print("обратный гиперболический тангенс 0.5 :", math.atanh(0.5))
синус PI/2 : 1.0 косинус 0 : 1.0 тангенс PI/4 : 0.9999999999999999 арксинус 0 : 1.5707963267948966 арккосинус 1 : 0.0 арктангенс 0.5 : 0.4636476090008061 гиперболический синус 1 : 1.1752011936438014 гиперболический косинус 0 : 1.0 гиперболический тангенс 1 : 1.5574077246549023 обратный гиперболический синус 1 : 0.0 обратный гиперболический косинус 1 : 0.0 обратный гиперболический тангенс 0.5 : 0.5493061443340549
Функция преобразования углов
Эти функции преобразуют угол. В математике углы можно записывать двумя способами: угол и радиан. Есть две функции в Python, которые конвертируют градусы в радиан и обратно.
# Импорт модуля math import math print(math.degrees(1.57)) print(math.radians(90))
89.95437383553924 1.5707963267948966
Математические константы
В Python есть две математические константы: pi и e .
- pi : это математическая константа со значением 3.1416..
- e : это математическая константа со значением 2.7183..
# Импорт модуля math import math # вывод значения PI print("значение PI", math.pi) # вывод значения e print("значение e", math.e)
значение PI 3.141592653589793 значение e 2.718281828459045