Murtolukujen (rationaalilukujen) laskeminen murtoluvuilla

liiketoiminta

Pythonin standardikirjaston murtolukumoduulin avulla voit suorittaa laskutoimituksia murtoluvuilla (rationaaliluvuilla).

Tässä selitetään seuraavat asiat.

  • Murtoluvun konstruktori
  • Hae osoittajan ja nimittäjän arvot kokonaislukuina.
  • Murtolukujen (rationaalilukujen) laskeminen ja vertailu
  • Murtolukujen muuntaminen desimaaliluvuiksi (float)
  • Murtoluvun muuntaminen merkkijonoksi (str)
  • Hae rationaalilukujen approksimaatio

Murtoluvun konstruktori

On olemassa useita tapoja luoda murtolukukappale. Kaikissa tapauksissa murtoluku jaetaan automaattisesti murtolukuihin.

Määritä osoittaja ja nimittäjä kokonaislukuina.

Määritä osoittaja ja nimittäjä kokonaislukuina. Jos nimittäjä jätetään pois, sen oletetaan olevan 1.

from fractions import Fraction

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

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

print(Fraction(3))
# 3

desimaalimurto (float)

Jos syötetään murtolukuarvo, se muunnetaan murtoluvuksi.

print(Fraction(0.25))
# 1/4

print(Fraction(0.33))
# 5944751508129055/18014398509481984

Jos haluat approksimoida antamalla suurimman nimittäjän, käytä jäljempänä kuvattua limit_denominator()-menetelmää.

merkkijono (str)

Jos annetaan merkkijonoarvo, se muunnetaan murtoluvuksi.

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

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

Hae osoittajan ja nimittäjän arvot kokonaislukuina.

Fraction-tyyppisten attribuuttien avulla voit saada kokonaislukuarvot osoittajalle ja nimittäjälle. Niitä ei voi muuttaa.

  • 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

Murtolukujen (rationaalilukujen) laskeminen ja vertailu

Aritmeettisia operaattoreita voidaan käyttää yhteenlaskun, vähennyslaskun jne. laskemiseen.

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

Myös vertailuoperaattoreita voidaan käyttää.

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

Murtolukujen muuntaminen desimaaliluvuiksi (float)

Voi muuntaa murtoluvut desimaaliluvuiksi float():lla.

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

Kun laskennassa käytetään desimaalilukua, se muunnetaan automaattisesti float-tyyppiseksi.

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

Murtoluvun muuntaminen merkkijonoksi (str)

Jos haluat muuntaa merkkijonoksi, käytä str() -toimintoa.

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

Hae rationaalilukujen approksimaatio

Rationaalilukujen approksimaatio voidaan saada käyttämällä menetelmää limit_denominator(), jonka tyyppi on Fraction.

Palauttaa rationaaliluvun (murtoluvun), jonka nimittäjä on pienempi tai yhtä suuri kuin argumentin max_denominator. Jos se jätetään pois, max_denominator=1000000.

Irrationaalisten lukujen, kuten piin ja Napierin luvun, approksimointi 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

Ympyrän desimaalilukujen muuntaminen murtoluvuiksi

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