ការគណនាប្រភាគ (លេខសនិទាន) ជាមួយប្រភាគ

អាជីវកម្ម

ដោយប្រើម៉ូឌុលប្រភាគនៃបណ្ណាល័យ Python ស្តង់ដារ អ្នកអាចធ្វើការគណនាដោយប្រើប្រភាគ (លេខសនិទានភាព)។

ខាងក្រោមនេះត្រូវបានពន្យល់នៅទីនេះ។

  • អ្នកបង្កើតប្រភាគ
  • ទទួលបានលេខភាគ និងតម្លៃភាគបែងជាចំនួនគត់
  • ការគណនា និងប្រៀបធៀបប្រភាគ (លេខសនិទានភាព)
  • បំប្លែងប្រភាគទៅជាទសភាគ (អណ្តែត)
  • ការបំប្លែងប្រភាគទៅជាខ្សែអក្សរ (str)
  • ទទួលបានចំនួនប្រហាក់ប្រហែល

អ្នកបង្កើតប្រភាគ

មានវិធីជាច្រើនដើម្បីបង្កើត Fraction instance ។ ក្នុងគ្រប់ករណីទាំងអស់ ប្រភាគត្រូវបានបែងចែកដោយស្វ័យប្រវត្តិទៅជាប្រភាគ។

បញ្ជាក់លេខភាគ និងភាគបែងជាចំនួនគត់

បញ្ជាក់ភាគយក និងភាគបែងជាចំនួនគត់រៀងគ្នា។ ប្រសិនបើភាគបែងត្រូវបានលុបចោល វាត្រូវបានសន្មត់ថាជា 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'>

ទទួលបានចំនួនប្រហាក់ប្រហែល

ការប៉ាន់ស្មានចំនួនសនិទានភាពអាចទទួលបានជាមួយនឹងវិធីសាស្ត្រ 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