Бутархайг (рационал тоо) бутархайгаар тооцоолох

Бизнес эрхэлдэг

Стандарт Python номын сангийн бутархай модулийг ашиглан та бутархай (рационал тоо) ашиглан тооцоо хийж болно.

Дараахь зүйлийг энд тайлбарлав.

  • Бутархай үүсгэгч
  • Тоолуур ба хуваагч утгыг бүхэл тоогоор авна
  • Бутархайг тооцоолох, харьцуулах (рационал тоо)
  • Бутархайг аравтын бутархай руу хөрвүүлэх (хөвөгч)
  • Бутархайг мөр (str) руу хөрвүүлэх
  • Рационал тооны ойролцоо утгыг авах

Бутархай үүсгэгч

Fraction жишээ үүсгэх хэд хэдэн арга байдаг. Бүх тохиолдолд бутархай нь автоматаар бутархайд хуваагдана.

Тоолуур ба хуваагчийг бүхэл тоогоор тодорхойлно

Тоолуур болон хуваагчийг бүхэл тоогоор тус тус зааж өгнө үү. Хэрэв хуваагчийг орхигдуулсан бол 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

Хэрэв та хамгийн их хуваагчийг зааж өгснөөр ойролцоогоор тооцоолохыг хүсвэл доор тайлбарласан limit_denominator() аргыг ашиглана уу.

тэмдэгт мөр(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

Бутархайг аравтын бутархай руу хөрвүүлэх (хөвөгч)

float() ашиглан бутархайгаас аравтын бутархай руу хөрвүүлэх боломжтой.

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'>

Бутархайг мөр (str) руу хөрвүүлэх

Мөр болгон хөрвүүлэхийн тулд str()-г ашиглана уу.

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

Рационал тооны ойролцоо утгыг авах

Рационал тооны ойролцоо утгыг Fraction төрлийн limit_denominator() аргаар авч болно.

Хуваарь нь max_denominator аргументаас бага буюу тэнцүү байх оновчтой тоог (бутархай) буцаана. Хэрэв орхигдуулсан бол max_denominator=1000000.

Ойролцоогоор иррационал тоонууд болох pi болон Napier тоо e

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
Copied title and URL