Li jêr ravekirinek e ku meriv çawa di Python de dabeşkera hevpar a herî mezin û pirjimara herî hindik hevpar hesab dike û digire.
- Dabeşkera hevpar a herî mezin û pirjimara hevpar a herî kêm a du hejmaran
- Dabeşkera hevpar a herî mezin û pirjimara herî kêm a sê an jî zêdetir hejmaran
Têbînî ku taybetmendiyên fonksiyonên ku di pirtûkxaneya standard de têne peyda kirin li gorî guhertoya Python-ê cûda dibin. Mînakek pêkanîna fonksiyonek ku ne di pirtûkxaneya standard de ye jî di vê gotarê de tê destnîşan kirin.
- Python 3.4 an berê
- GCD:
fractions.gcd()
(tenê du arguman)
- GCD:
- Python 3.5 an paşê
- GCD:
math.gcd()
(tenê du arguman)
- GCD:
- Python 3.9 an paşê
- GCD:
math.gcd()
(ji sê argumanan zêdetir piştgirî dike) - kêmtirîn hevpar:
math.lcm()
(ji sê argumanan zêdetir piştgirî dike)
- GCD:
Li vir em rêbazê bi karanîna pirtûkxaneya standard Python rave dikin; NumPy bi hêsanî dikare were bikar anîn da ku ji bo her hêmanek pir rêzikên dabeşkera hevpar a herî mezin û pirjimara herî kêm hevpar hesab bike.
Dabeşkera hevpar a herî mezin û pirjimara hevpar a herî kêm a du hejmaran
GCD
Ji Python 3.5 ve, di modula matematîkê de fonksiyonek gcd() heye. gcd() kurtenivîsa wê ye
- greatest common divisor
Dabeşkera hevpar a herî mezin a ku di argumanê de hatî destnîşan kirin vedigerîne.
import math
print(math.gcd(6, 4))
# 2
Bala xwe bidinê ku di Python 3.4 û berê de, fonksiyona gcd() di modula perçeyan de ye, ne modula matematîkê. fraksiyon divê bên împortkirin û fractions.gcd().
kêmtirîn hevpar
Fonksiyona lcm(), ku pirjimara herî kêm hevpar vedigerîne, li modula matematîkê ya Python 3.9 hate zêdekirin. lcm kurteya wê ye
- least common multiple
Pirjimara hindiktirîn a hevjimara ku di argumanê de hatî destnîşan kirin vedigerîne.
print(math.lcm(6, 4))
# 12
Berî Python 3.8, lcm () nayê peyda kirin, lê bi karanîna gcd () bi hêsanî dikare were hesibandin.
lcm(a, b) = a * b / gcd(a, b)
Mînak Pêkanînê.
def my_lcm(x, y):
return (x * y) // math.gcd(x, y)
print(my_lcm(6, 4))
# 12
/
Ji ber ku ev yek di floatek dehiyê de encam dide, du paşvekêşan têne bikar anîn da ku xala dehiyê qut bikin û encamek dabeşkirina jimarek vegerînin. Bala xwe bidinê ku pêvajoyek nayê kirin da ku diyar bike ka arguman jimarek tevde ye an na.
Dabeşkera hevpar a herî mezin û pirjimara herî kêm a sê an jî zêdetir hejmaran
Python 3.9 an paşê
Bi Python 3.9 dest pê dike, hemî fonksiyonên jêrîn ji sê argumanan zêdetir piştgirî dikin.
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
*
Heke hûn dixwazin dabeşkera hevpar a herî mezin an pirjimara herî kêm hevpar a hêmanên lîsteyê bihesibînin, bi vê argumanê diyar bikin.
l = [27, 18, 9, 3]
print(math.gcd(*l))
# 3
print(math.lcm(*l))
# 54
Python 3.8 an berê
Berî Python 3.8, fonksiyona gcd() tenê du arguman piştgirî dikir.
Ji bo dîtina dabeşkera hevpar a herî mezin an pirjimara herî hindik a sê an jî zêdetir hejmaran, algorîtmayek bi taybetî tevlihev ne hewce ye; tenê dabeşkera hevpar a herî mezin an pirjimara herî hindik a hevpar ji bo her yek ji çend nirxan bi dûv re bi karanîna fonksiyona rêza bilind kêm bike ().
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
Dîsa, bala xwe bidin ku berî Python 3.4, fonksiyona gcd () di modula perçeyê de ye, ne modula matematîkê.
kêmtirîn hevpar
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