Стандарт 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