Python. Модуль math. Теоретико-числові функції та функції представлення

Модуль math. Теоретико-числові функції та функції представлення


Зміст


1. Підключення модуля math. Функція math.ceil(). Округлення в більшу сторону

Щоб використати теоретико-числові функції та функції представлення з модуля math, потрібно цей модуль попередньо підключити

import math

Функція math.ceil(x) повертає таке дійсне число y, яке відповідає наступним умовам:

  • значення числа y рівне найближчому цілому x;
  • значення числа y більше або рівне значення x.

В якості аргументу x може задаватись тільки ціле або дійсне число. Якщо спробувати задати комплексне число в якості аргументу x, то інтерпретатор повідомить про помилку.

Приклад.

import math

# для дійсного аргументу, додатні числа
x = 2.65
y = math.ceil(x) # y = 3.0

x = 3.0 # y = 3.0
y = math.ceil(x)

x = 2.000001
y = math.ceil(x) # y = 3.0

# дійсний аргумент, від'ємні числа
x = -2.0001 # y = -2.0
y = math.ceil(x)

# цілий аргумент
x = 13
y = math.ceil(x) # y = 13.0

 

2. Функція math.copysign(x,y). Присвоювання аргументу з врахуванням знаку числа

Функція math.copysign(x,y) повертає результат дійсного типу, який рівний значенню аргументу x але зі знаком аргументу y. Аргументи x, y можуть бути тільки цілого або дійсного типу.

Приклад.

import math

# функція math.copysign(x,y)

x = 3.64
y = -5.44
z = math.copysign(x, y) # z = -3.64 => значення x, знак y

x = -2.85
y = 0.00001
z = math.copysign(x, y) # z = 2.85

# випадок, коли y = -0.0
x = 2.85
y = -0.0 # дійсне від'ємне число
z = math.copysign(x, y) # z = -2.85

# випадок, коли y = 0.0
x = 3.18
y = 0.0
z = math.copysign(x, y) # z = 3.18

 

3. Функція math.fabs(x). Модуль числа

Функція math.fabs(x) повертає абсолютне значення аргументу x. Функція повертає дійсний результат. Аргумент x може бути як дійсного так і цілого типу. Аргумент x не може бути комплексного типу.

Приклад.

# функція math.fabs(x) - модуль x
import math

x = -15.55
y = math.fabs(x) # y = 15.55

x = 0.01
y = math.fabs(x) # y = 0.01

# для цілого аргументу x
x = -15
y = math.fabs(x) # y = 15.0 - дійсний результат


 

4. Функція math.factorial(x). Обчислення факторіалу

Функція factorial(x) повертає факторіал цілочисельного аргументу x. Результат функції є цілий тип. Заборонено використовувати аргумент x дійсного типу за винятком ситуацій, коли дробова частина рівна 0 (наприклад 5.0).

Приклад.

# функція math.factorial(x)

import math

x = 5
y = math.factorial(x) # y = 120

x = 5.0 # дозволено, тому що дробова частина рівна 0
y = math.factorial(x) # y = 120

#x = 5.5 - Заборонено, помилка
#y = math.factorial(x) # y = 120

 

5. Функція math.floor(x). Округлення в меншу сторону

Функція math.floor(x) повертає дійсне число y, яке відповідає наступним умовам:

  • значення числа y рівне найближчому цілому x;
  • значення числа y менше або рівне значення x.

В якості аргументу x може задаватись тільки ціле або дійсне число. Якщо спробувати задати комплексне число в якості аргументу x, то інтерпретатор повідомить про помилку.

Приклад.

# функція math.floor(x)

import math

x = 5.2
y = math.floor(x) # y = 5.0

x = 5.99
y = math.floor(x) # y = 5.0

x = -5.2
y = math.floor(x) # y = -6.0

x = -6.0
y = math.floor(x) # y = -6.0

 

6. Функція math.fmod(x, y). Остача від ділення

Функція fmod(x,y) повертає остачу від ділення двох чисел. Кожен з аргументів x, y може бути цілого або дійсного типу. Функція є аналогом оператора %.

Відмінність між функцією fmod() та оператором % полягає в наступному. Для цілочисельних аргументів оператор % повертає результат цілого типу. В той же час функція fmod(x, y) для аргументів цілого типу повертає результат дійсного типу.
Оператор % можна також застосовувати для аргументів дійсного типу. Однак, у деяких випадках оператор x%y може бути не зовсім обчислювальним для дійсних аргументів. Тому цей оператор рекомендуєтсья застосовувати для цілочисельних аргументів. А для дійсних аргументів краще використовувати функцію fmod(x, y).

Приклад.

# функція math.fmod(x)

import math

# для дійсних аргументів
x = 5.2
y = 0.4
y = math.fmod(x, y) # y = 0.3999999999999999

# для цілих аргументів
x = 15
y = 4
z = math.fmod(x, y) # z = 3.0 - дійсний результат
v = x % y # v = 3 - цілий результат

 

7. Функція math.frexp(x). Обчислення нормалізованої мантиси та незсунутого порядку числа

Дана функція повертає нормалізовану мантису m та незсунутий порядок e дійсного числа x у вигляді пари (кортежу). Обчислювальні значення задовільняють співвідношенням:

Python. Функція math.frexp(x)

Приклад.

# функція math.frexpr(x)

import math

x = 2.8
y = math.frexp(x) # y = (0.7, 2)

# нульове значення x
x = 0.0
y = math.frexp(x) # y = (0.0, 0)

 

8. Функція math.fsum(). Сума чисел в ітерованому об’єкті

Функція math.fsum(x) знаходить точну суму чисел з плаваючою комою в ітерованому об’єкті x. Функція запобігає втраті точності шляхом відслідковування деяких проміжних часткових сум.

Приклад.

# функція math.fsum(x)
import math
y = math.fsum([0.02, 0.02, 0.02, 0.02, 0.02]) # y = 0.1

 

9. Функція math.gcd(a, b). Найбільший спільний дільник двох чисел

Функція math.gcd(a,b) реалізована у версіях Python 3.5 і вище. Дана функція повертає найбільший спільний дільник аргументів a, b. Якщо a чи b відмінні від нуля, то результат функції є найбільше число, на яке a та b діляться націло.

Приклад.

# функція gcd(a,b)
import math

a = 15
b = 5
c = math.gcd(a,b) # c = 5

a = 60
b = 40
c = math.gcd(a,b) # c = 20

a = -60
b = 24
c = math.gcd(a,b) # c = 12

 

10. Функція math.isclose(). Визначення близькості чисел

Дана функція використовується у версіях Python 3.5 і вище.
Функція isclose(a, b, rel_tol, abs_tol) повертає True, якщо числа a, b є близькі один до одного за значеннями. В противному випадку функція повертає False.

Близькість двох чисел обчислюється на основі:

  • відносного допустимого відхилення rel_tol;
  • абсолютного допустимого відхилення abs_tol.

Значення відносного та абсолютного відхилень можуть бути задані явно. Якщо значення відносного та абсолютного відхилень не задані, то аргументи rel_tol та abs_tol приймають наступні значення:

  • rel_tol = 1e-09;
  • abs_tol = 0.0.

Якщо потрібно задати відносну похибку 3%, то rel_tol=0.03.
Значення abs_tol визначає максимальний допуск між числами: abs_tol = |a-b|. Значення abs_tol має бути завжди не менше нуля.

Приклад.

# функція isclose(a,b,rel_tol,abs_tol)
import math

a = 5.000001
b = 5.0
c = math.isclose(a,b) # c = False

a = 5.0000000000001
b = 5.0
c = math.isclose(a,b) # c = True

 

11. Функція math.isfinite(x). Визначення скінченості

Функція isfinite(x) введена в версії Python 3.2 і вище. Дана функція повертає True, якщо виконуються обидві умови:

  • значення x не є нескінченістю;
  • значення x не є рівне NaN.

В іншому випадку функція повертає False. Значення x = 0.0 розглядається як кінцеве.

Приклад.

# функція isfinite(x)
import math

x = 0.0
f = math.isfinite(x) # f = True

 

12. Функція isinf(x). Визначення нескінченості

Функція isinf(x) повертає True, якщо x є додатньою або від’ємною нескінченістю.

Приклад.

# функція isinf(x)
import math

x = 0.0
f = math.isinf(x) # f = False

 

13. Функція math.isnan(x). Визначення значення NaN (not a number)

Функція isnan(x) повертає True, якщо значення x рівне значенню NaN (not a number). В іншому випадку функція повертає False.
Значення NaN – це особливе значення (або стан) що приймає невизначений результат. NaN виникає внаслідок деяких математичних операцій і не містить жодного іншого значення. NaN може виникати внаслідок операцій що дають невизначений результат, наприклад, ділення нуль на нуль, множення нуля на нескінченість і т.д.

Приклад.

# функція isnan(x)
import math

x = 0.0/5
f = math.isnan(x) # f = False

 

14. Функція math.ldexp(x, i). Зворотна функція до frexp(x)

Функція ldexp(x, i) повертає значення x**(2*i). Функція є зворотною до функції math.frexp(x).

Приклад.

# функція ldexp(x,i)
import math

x = 3.0
i = 2
y = math.ldexp(x,i) # y = 12.0

 

15. Функція math.modf(x). Виділення дробової та цілої частини дійсного числа

Функція math.modf(x) повертає пару дійсних чисел, яка складається з:

  • дробової частини числа x (значення числа після коми);
  • цілої частини числа x.

Приклад.

# функція modf(x)
import math

x = 3.23
y = math.modf(x) # y = (0.22999999999999998, 3.0)

x = -81.02
y = math.modf(x) # y = (-0.01999999999999602, -81.0)

 

16. Функція math.remainder(x, y). Залишок x відносно y

Функція math.remainder(x, y) повертає дійсне число, яке є залишок x відносно y. Передбачається, що аргументи x та y є кінцеві. Також значення y має бути ненульовим.
Результат функції обчислюється за формулою

x – n·y

де n – найближче ціле число до точного значення фактора x/y.

Приклад.

# функція remainder(x,y)
import math

x = 3.2
y = 3.2
z = math.remainder(x, y) # z = 0.0

x = 3.7
y = 4.2
z = math.remainder(x, y) # z = -0.5

x = 4.7
y = 3.2
z = math.remainder(x, y) # z = 1.5

x = 15.0
y = 3.3
z = math.remainder(x, y) # z = -1.4999999999999991

x = -6.0
y = 2.1
z = math.remainder(x, y) # z = 0.30000000000000027

 

17. Функція math.trunc(x). Визначення цілої частини числа

Функція math.trunc(x) повертає цілочисельне значення, яке рівне цілій частині числа x.

Приклад.

# функція trunc(x)
import math

x = 2.8
y = math.trunc(x) # y = 2

x = -3.001
y = math.trunc(x) # y = -3

x = 2.0000001
y = math.trunc(x) # y = 2

 


Зв’язані теми