பைத்தானில் மிகப் பெரிய பொது வகுப்பி மற்றும் குறைந்த பொதுவான பெருக்கல் ஆகியவற்றைக் கணக்கிட்டுப் பெறுங்கள்

வணிக

பின்வருபவை பைத்தானில் மிகப் பெரிய பொது வகுப்பி மற்றும் குறைந்த பொதுவான பெருக்கத்தை எவ்வாறு கணக்கிடுவது மற்றும் பெறுவது என்பதற்கான விளக்கமாகும்.

  • இரண்டு முழு எண்களின் மிகப் பெரிய பொது வகுப்பி மற்றும் குறைந்த பொதுப் பெருக்கல்
  • மூன்று அல்லது அதற்கு மேற்பட்ட முழு எண்களின் மிகப் பெரிய பொது வகுத்தல் மற்றும் குறைந்தபட்ச பொதுவான பெருக்கல்

நிலையான நூலகத்தில் வழங்கப்படும் செயல்பாடுகளின் விவரக்குறிப்புகள் பைதான் பதிப்பைப் பொறுத்து வேறுபடுகின்றன என்பதை நினைவில் கொள்க. நிலையான நூலகத்தில் இல்லாத ஒரு செயல்பாட்டை செயல்படுத்துவதற்கான எடுத்துக்காட்டு இந்த கட்டுரையில் காட்டப்பட்டுள்ளது.

  • பைதான் 3.4 அல்லது அதற்கு முந்தையது
    • ஜிசிடி:fractions.gcd()(இரண்டு வாதங்கள் மட்டுமே)
  • பைதான் 3.5 அல்லது அதற்குப் பிறகு
    • ஜிசிடி:math.gcd()(இரண்டு வாதங்கள் மட்டுமே)
  • பைதான் 3.9 அல்லது அதற்குப் பிறகு
    • ஜிசிடி:math.gcd()(மூன்றுக்கும் மேற்பட்ட வாதங்களை ஆதரிக்கிறது)
    • குறைந்த பொதுப் பிரிவு:math.lcm()(மூன்றுக்கும் மேற்பட்ட வாதங்களை ஆதரிக்கிறது)

நிலையான பைதான் நூலகத்தைப் பயன்படுத்தும் முறையை இங்கே விளக்குகிறோம்; பல அணிகளின் ஒவ்வொரு தனிமத்திற்கும் மிகப் பெரிய பொது வகுப்பி மற்றும் குறைந்தபட்ச பொது மடங்குகளைக் கணக்கிட NumPy எளிதாகப் பயன்படுத்தப்படும்.

இரண்டு முழு எண்களின் மிகப் பெரிய பொது வகுப்பி மற்றும் குறைந்த பொதுப் பெருக்கல்

ஜிசிடி

பைதான் 3.5 முதல், கணித தொகுதியில் ஒரு gcd() செயல்பாடு உள்ளது. gcd() என்பதன் சுருக்கம்

  • greatest common divisor

வாதத்தில் குறிப்பிடப்பட்டுள்ள முழு எண்ணின் மிகப் பெரிய பொது வகுப்பியை வழங்குகிறது.

import math

print(math.gcd(6, 4))
# 2

Python 3.4 மற்றும் அதற்கு முந்தையவற்றில், gcd() செயல்பாடு பின்னங்கள் தொகுதியில் உள்ளது, கணித தொகுதி அல்ல. பின்னங்கள் இறக்குமதி செய்யப்பட வேண்டும் மற்றும் பின்னங்கள்.gcd().

குறைந்த பொதுப் பிரிவு

Lcm() செயல்பாடு, குறைந்த பொது மடங்குகளை வழங்கும், பைதான் 3.9 இல் உள்ள கணித தொகுதியில் சேர்க்கப்பட்டது. lcm என்பதன் சுருக்கம்

  • least common multiple

மதிப்புருவில் குறிப்பிடப்பட்டுள்ள முழு எண்ணின் குறைந்தபட்ச பொதுவான பெருக்கத்தை வழங்குகிறது.

print(math.lcm(6, 4))
# 12

Python 3.8க்கு முன், lcm() வழங்கப்படவில்லை, ஆனால் gcd()ஐப் பயன்படுத்தி எளிதாகக் கணக்கிடலாம்.

lcm(a, b) = a * b / gcd(a, b)

செயல்படுத்தல் உதாரணம்.

def my_lcm(x, y):
    return (x * y) // math.gcd(x, y)

print(my_lcm(6, 4))
# 12

/இது ஒரு தசம மிதவையில் விளைவதால், தசம புள்ளியை துண்டிக்கவும் முழு எண் வகுத்தல் முடிவை வழங்கவும் இரண்டு பின்சாய்வுகள் பயன்படுத்தப்படுகின்றன. வாதமானது முழு எண்ணா இல்லையா என்பதை தீர்மானிக்க எந்த செயலாக்கமும் செய்யப்படவில்லை என்பதை நினைவில் கொள்ளவும்.

மூன்று அல்லது அதற்கு மேற்பட்ட முழு எண்களின் மிகப் பெரிய பொது வகுத்தல் மற்றும் குறைந்தபட்ச பொதுவான பெருக்கல்

பைதான் 3.9 அல்லது அதற்குப் பிறகு

பைதான் 3.9 இல் தொடங்கி, பின்வரும் அனைத்து செயல்பாடுகளும் மூன்றுக்கும் மேற்பட்ட வாதங்களை ஆதரிக்கின்றன.

  • math.gcd()
  • math.lcm()
print(math.gcd(27, 18, 9))
# 9

print(math.gcd(27, 18, 9, 3))
# 3

print(math.lcm(27, 9, 3))
# 27

print(math.lcm(27, 18, 9, 3))
# 54

*ஒரு பட்டியலின் தனிமங்களின் மிகப் பெரிய பொது வகுப்பி அல்லது குறைந்த பொதுப் பெருக்கத்தைக் கணக்கிட விரும்பினால், இதனுடன் வாதத்தைக் குறிப்பிடவும்.

l = [27, 18, 9, 3]
print(math.gcd(*l))
# 3

print(math.lcm(*l))
# 54

பைதான் 3.8 அல்லது அதற்கு முந்தையது

பைதான் 3.8க்கு முன், gcd() செயல்பாடு இரண்டு வாதங்களை மட்டுமே ஆதரித்தது.

மூன்று அல்லது அதற்கு மேற்பட்ட முழு எண்களின் மிகப் பெரிய பொது வகுப்பி அல்லது குறைந்த பொதுப் பெருக்கத்தைக் கண்டறிய, குறிப்பாக சிக்கலான அல்காரிதம் தேவையில்லை; உயர்-வரிசை செயல்பாடு குறைப்பு() ஐப் பயன்படுத்தி, பல மதிப்புகள் ஒவ்வொன்றிற்கும் மிகப் பெரிய பொதுவான வகுப்பி அல்லது குறைந்தபட்ச பொதுவான பெருக்கத்தைக் கணக்கிடுங்கள்.

ஜிசிடி

from functools import reduce

def my_gcd(*numbers):
    return reduce(math.gcd, numbers)

print(my_gcd(27, 18, 9))
# 9

print(my_gcd(27, 18, 9, 3))
# 3

l = [27, 18, 9, 3]
print(my_gcd(*l))
# 3

மீண்டும், Python 3.4 க்கு முன், gcd() செயல்பாடு பின்னம் தொகுதியில் உள்ளது, கணித தொகுதி அல்ல.

குறைந்த பொதுப் பிரிவு

def my_lcm_base(x, y):
    return (x * y) // math.gcd(x, y)

def my_lcm(*numbers):
    return reduce(my_lcm_base, numbers, 1)

print(my_lcm(27, 9, 3))
# 27

print(my_lcm(27, 18, 9, 3))
# 54

l = [27, 18, 9, 3]
print(my_lcm(*l))
# 54