Раціональні числа. Клас Fraction
Зміст
- 1. Поняття раціонального числа. Представлення раціональних чисел. Клас Fraction
- 2. Створення об’єкту класу Fraction
- 3. Операції над раціональними числами. Приклади
- 4. Переваги застосування раціональних чисел. Приклад
- 5. Метод as_integer_ratio(). Приклад
- 6. Метод Fraction.from_float(). Приклад
- 7. Метод float(). Приклад
- Зв’язані теми
Пошук на інших ресурсах:
1. Поняття раціонального числа. Представлення раціональних чисел. Клас Fraction
Раціональне число – це число, яке можна представити у вигляді раціонального дробу m/n, де m, n відповідно чисельник і знаменник які мають цілочисельне значення. Наприклад, у дробі 5/6 значення m = 5, значення n = 6.
У мові програмування Python для роботи з раціональними числами пропонуєтсья клас Fraction. У класі відповідним чином представлені чисельник m та знаменник n. У класі Fraction автоматично здійснюється спрощення дробу (наприклад, 9/18 => 1/2).
Щоб використати можливості класу Fraction потрібно попередньо підключити модуль fractions
from fractions import Fraction
⇑
2. Створення об’єкту класу Fraction
Об’єкт класу Fraction можна створити одним з двох способів.
Спосіб 1. З допомогою конструктора, що містить цілочисельні значення чисельника та знаменника.
Приклад.
a = Fraction(5, 6) # a = 5/6 - раціональне число b = Fraction(8, 12) # b = 2/3 - раціональне число
У вищенаведеному прикладі в рядку
b = Fraction(8, 12)
значення чисельника 8 та знаменника 12 змінної b буде автоматично спрощене до виду 2/3. Тобто, чисельник у класі рівний 2, знаменник рівний 3.
Спосіб 2. З допомогою конструктора, що отримує рядок з дійсним значенням.
Приклад.
a = Fraction('1.33') # a = 133/100 b = Fraction('3.719') # b = 3719/1000 c = Fraction('-1.5') # c = -3/2 d = Fraction('3.7') + Fraction('5.2') # d = 89/10
⇑
3. Операції над раціональними числами. Приклади
Над об¢єктами класу Fraction можна виконувати наступні арифметичні операції:
- додавання (+);
- віднімання (–);
- множення (*);
- ділення (/)
- взяття остачі від ділення (%).
Приклади.
# Раціональні числа from fractions import Fraction a = Fraction(5, 6) + Fraction(3, 2) # a = 7/3 b = a - Fraction(3, 5) # b = 26/15 c = b * Fraction(101, 202) # c = 13/15 d = c / b # d = 1/2 e = d % a # e = 1/2
Операція піднесення до степеня числа типу Fraction повертає дійсний результат
f = Fraction(1,2)**Fraction(1,2) # f = 0.7071067811865476
⇑
4. Переваги застосування раціональних чисел. Приклад
Як відомо, операції з дійсними числами мають обмеження точності, яка залежить від можливостей апаратних засобів що реалізують математику дійсних чисел. Порівняно з дійсними числами раціональні числа забезпечують
- потрібну точність обчислень;
- автоматичне спрощення результату.
Приклад. У прикладі демонструється втрата точності для виразу 0.2+0.2+0.2-0.4.
# Раціональні числа, переваги застосування from fractions import Fraction a = 0.2+0.2+0.2-0.4 # a = 0.20000000000000007 - точність втрачається b = Fraction('0.2')+Fraction('0.2')+Fraction('0.2')-Fraction('0.4') # b = 1/5 print('a = ', a) print('b = ', b)
Результат роботи програми
a = 0.20000000000000007 b = 1/5
⇑
5. Метод as_integer_ratio(). Приклад
Метод as_integer_ratio() повертає чисельник та знаменник, що відповідає заданному числу. Загальна форма виклику методу
(real_number).as_integer_ratio()
де
- real_number – число дійсного типу.
Метод використовується для підтримки перетворення в раціональні числа.
Приклад.
# метод as_integer_ratio from fractions import Fraction # перетворення у дробове число a = (3.5).as_integer_ratio() # a = (7, 2) b = (11.7).as_integer_ratio() # b = (3293257227514675, 281474976710656) # перетворення у тип Fraction a = 8.5 c = Fraction(*a.as_integer_ratio()) # c = 17/2
У вищенаведеному прикладі символ * означає синтаксис розпаковування кортежу на окремі аргументи.
⇑
6. Метод Fraction.from_float(). Приклад
Метод from_float() класу Fraction дозволяє отримати чисельник та знаменник дійсного числа так само як і метод as_integer_ratio().
Приклад.
# метод from_float класу Fraction from fractions import Fraction y = Fraction.from_float(2.25) # y = 9/4 x = 3.8 # тип float y = Fraction.from_float(x) # y = 4278419646001971/1125899906842624 x = -8.75 y = Fraction.from_float(x) # y = -35/4
⇑
7. Метод float(). Приклад
Метод float() може отримувати об’єкти типу Fraction в якості аргументів. Метод повертає число типу float.
Приклад.
# метод float() класу Fraction from fractions import Fraction # аргумент - змінна дійсного типу x = Fraction(11, 4) y = float(x) # y = 2.75 # аргумент - число y = float(Fraction(7,6)) # y = 1.1666666666666667
⇑
Зв’язані теми
- Представлення чисел різних типів. Базові числові типи. Функції перетворення чисел
- Числа з фіксованою точністю. Клас Decimal
⇑