Рачунање разломака (рационалних бројева) са разломцима

Бусинесс

Користећи модул разломака стандардне Питхон библиотеке, можете извршити прорачуне са разломцима (рационалним бројевима).

Овде је објашњено следеће.

  • Конструктор разломка
  • Добити вредности бројиоца и имениоца као целе бројеве
  • Рачунање и поређење разломака (рационални бројеви)
  • Претварање разломака у децимале (флоат)
  • Претварање разломка у стринг (стр).
  • Добијте апроксимацију рационалног броја

Конструктор разломка

Постоји неколико начина за креирање инстанце Фрацтион. У свим случајевима, разломак се аутоматски дели на разломке.

Наведите бројилац и именилац као целе бројеве

Наведите бројилац и именилац као целе бројеве, респективно. Ако је именилац изостављен, претпоставља се да је 1.

from fractions import Fraction

print(Fraction(1, 3))
# 1/3

print(Fraction(2, 6))
# 1/3

print(Fraction(3))
# 3

децимални разломак(float)

Ако се проследи вредност разломка, она се конвертује у разломак.

print(Fraction(0.25))
# 1/4

print(Fraction(0.33))
# 5944751508129055/18014398509481984

Ако желите да извршите апроксимацију навођењем максималног имениоца, користите метод лимит_деноминатор() описан у наставку.

низ знакова(str)

Ако се проследи вредност низа, она се конвертује у разломак.

print(Fraction('2/5'))
# 2/5

print(Fraction('16/48'))
# 1/3

Добити вредности бројиоца и имениоца као целе бројеве

Атрибути типа Фрацтион вам омогућавају да добијете целобројне вредности за бројилац и именилац, респективно. Они се не могу променити.

  • numerator
  • denominator
a = Fraction(1, 3)
print(a)
# 1/3

print(a.numerator)
print(type(a.numerator))
# 1
# <class 'int'>

print(a.denominator)
print(type(a.denominator))
# 3
# <class 'int'>

# a.numerator = 7
# AttributeError: can't set attribute

Рачунање и поређење разломака (рационални бројеви)

Аритметички оператори се могу користити за израчунавање сабирања, одузимања итд.

result = Fraction(1, 6) ** 2 + Fraction(1, 3) / Fraction(1, 2)
print(result)
print(type(result))
# 25/36
# <class 'fractions.Fraction'>

Могу се користити и оператори поређења.

print(Fraction(7, 13) > Fraction(8, 15))
# True

Претварање разломака у децимале (флоат)

Може да конвертује из разломака у децимале помоћу флоат().

a_f = float(a)
print(a_f)
print(type(a_f))
# 0.3333333333333333
# <class 'float'>

Када се израчуна помоћу децималног броја, аутоматски се претвара у тип са плутајућим бројем.

b = a + 0.1
print(b)
print(type(b))
# 0.43333333333333335
# <class 'float'>

Претварање разломка у стринг (стр).

Да бисте конвертовали у стринг, користите стр().

a_s = str(a)
print(a_s)
print(type(a_s))
# 1/3
# <class 'str'>

Добијте апроксимацију рационалног броја

Апроксимација рационалног броја може се добити методом лимит_деноминатор() типа Фрацтион.

Враћа рационални број (разломак) чији је именилац мањи или једнак аргументу мак_деноминатор. Ако се изостави, мак_деноминатор=1000000.

Приближни ирационални бројеви као што су пи и Напиеров број е

pi = Fraction(3.14159265359)
print(pi)
# 3537118876014453/1125899906842624

print(pi.limit_denominator(10))
print(pi.limit_denominator(100))
print(pi.limit_denominator(1000))
# 22/7
# 311/99
# 355/113

e = Fraction(2.71828182846)
print(e)
# 6121026514870223/2251799813685248

print(e.limit_denominator(10))
print(e.limit_denominator(100))
print(e.limit_denominator(1000))
# 19/7
# 193/71
# 1457/536

Претворите кружне децимале у разломке

a = Fraction(0.565656565656)
print(a)
# 636872674577009/1125899906842624

print(a.limit_denominator())
# 56/99

a = Fraction(0.3333)
print(a)
# 6004199023210345/18014398509481984

print(a.limit_denominator())
print(a.limit_denominator(100))
# 3333/10000
# 1/3