Numărul teoretic de reprezentare și funcții¶
math.
ceil
(x)¶
a Reveni la plafonul de x, cel mai mic număr întreg mai mare sau egal cu x.Dacă x nu este un float, delegați să x.__ceil__()
, care ar trebui să se întoarcă oIntegral
valoare.
math.
comb
(n, k)¶
returnează numărul de moduri de a alege de k obiecte din n elemente, fără a repetitionand fără ordine.,
se Evaluează la n! / (k! * (n - k)!)
când k <= n
și evaluatesto zero atunci când k > n
.
de Asemenea, numit coeficient binomial pentru că este pânăla coeficientul de k-lea termen în polinom de expansiune de theexpression (1 + x) ** n
.
ridicăTypeError
Dacă oricare dintre argumente nu sunt întregi.Ridică ValueError
dacă oricare dintre argumentele sunt negative.
nou în versiunea 3.8.,
math.
copysign
(x, y)¶math.
fabs
(x)¶
Return the absolute value of x.
math.
factorial
(x)¶
Return x factorial as an integer. Raises ValueError
if x is not integral oris negative.
Deprecated since version 3.9: Accepting floats with integral values (like 5.0
) is deprecated.,
math.
floor
(x)¶math.
fmod
(x, y)¶
Înapoi fmod(x, y)
, astfel cum sunt definite de platforma C bibliotecă. Rețineți căexpresia Python x % y
nu poate returna același rezultat. Intenția de Steag este că fmod(x, y)
fi exact (matematic; să infiniteprecision) egal cu x - n*y
pentru un număr întreg n astfel încât rezultatul are același semn ca x și mărime mai mică decât abs(y)
., Python e x % y
returnează un rezultat cu semnul y în loc, și nu poate fi exact computablefor float argumente. De exemplu, fmod(-1e-100, 1e100)
este -1e-100
, dar rezultatul de Python e -1e-100 % 1e100
este 1e100-1e-100
, care nu poate berepresented exact ca un float, și runde de surprinzător 1e100
. Din acest motiv, funcția fmod()
în general, este de preferat atunci când se lucrează withfloats, în timp ce Python x % y
este de preferat atunci când se lucrează cu numere întregi.,
math.
frexp
(x)¶math.
fsum
(iterable)¶
Returna un precisă în virgulă mobilă în sumă de valori în iterable. Avoidsloss de precizie de urmărire multiple intermediare sume parțiale:
>>> sum()0.9999999999999999>>> fsum()1.0
algoritmul lui precizia depinde IEEE-754 aritmetică garanții și thetypical cazul în care modul de rotunjire este pe jumătate chiar., Pe unele non-Windowsbuilds, care stau la baza C biblioteca folosește extinsă plus de precizie și mayoccasionally dublu-rotund-un intermediar, suma făcându-l să fie oprit în itsleast semnificativ bit.
pentru discuții suplimentare și două abordări alternative, consultați ASPN cookbookrecipes pentru o însumare precisă în virgulă mobilă.
math.
gcd
(*numere întregi)¶
returnează cel mai mare divizor comun a specificat număr întreg de argumente.Dacă oricare dintre argumente este zero, atunci valoarea returnată este cea mai marepozitiv întreg care este un divizor al tuturor argumentelor., Dacă toate argumentelesunt zero, atunci valoarea returnată este 0
. gcd()
fără argumentsreturns 0
.
nou în versiunea 3.5.
schimbat în versiunea 3.9: Adăugat suport pentru un număr arbitrar de argumente. Anterior, doar douăargumentele au fost susținute.
math.
isclose
(a, b, *, rel_tol=1e-09, abs_tol=0.0)¶
Înapoi True
dacă valorile a și b sunt aproape unul de altul șiFalse
în caz contrar.,
dacă două valori sunt sau nu considerate apropiate, se determină în funcție dedat toleranțele absolute și relative.
rel_tol este relativă toleranță – este valoarea maximă permisă differencebetween a și b, în raport cu cea mai mare valoare absolută a sau b.De exemplu, pentru a seta o toleranță de 5%, transmite rel_tol=0.05
. La defaulttolerance este 1e-09
, care asigură de faptul că cele două valori sunt samewithin aproximativ 9 cifre zecimale. rel_tol trebuie să fie mai mare decât zero.abs_tol este toleranța minimă absolută-util pentru comparații nearzero., abs_tol trebuie să fie cel puțin zero.dacă nu apar erori, rezultatul va fi:abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)
.
IEEE 754 valori speciale de NaN
, inf
și -inf
va behandled conform IEEE reguli. În mod special, NaN
nu este consideredclose la orice altă valoare, inclusiv NaN
. inf
și -inf
sunt onlyconsidered aproape de ei înșiși.
nou în versiunea 3.5.,
See also
PEP 485 – A function for testing approximate equality
math.
isfinite
(x)¶
Return True
if x is neither an infinity nor a NaN, andFalse
otherwise. (Note that 0.0
is considered finite.)
New in version 3.2.
math.
isinf
(x)¶
Return True
if x is a positive or negative infinity, andFalse
otherwise.,
math.
isnan
(x)¶
Înapoi True
dacă x este un NaN (not a number), și False
în caz contrar.
math.
isqrt
(n)¶
se Întoarcă întreg rădăcina pătrată a număr întreg nenegativ n. Aceasta este podea de exact rădăcina pătrată a lui n, sau echivalent cea mai mare integera astfel încât a2 ≤ n.
Pentru unele aplicații, poate fi mai convenabil de a avea cel puțin integera astfel încât n ≤ a2, sau, în alte cuvinte tavan din exactă rădăcină pătrată din n., Pentru n pozitiv, acest lucru poate fi calculat folosinda = 1 + isqrt(n - 1)
.
nou în versiunea 3.8.
math.
lcm
(*numere întregi)¶
returnează cel mai mic multiplu comun a specificat număr întreg de argumente.Dacă toate argumentele sunt zero, atunci valoarea returnată este cea mai micăîntreg pozitiv, care este un multiplu al tuturor argumentelor. Dacă oricare dintre argumenteeste zero, atunci valoarea returnată este 0
. lcm()
fără argumentsreturns 1
.
nou în versiunea 3.9.,
math.
ldexp
(x, i)¶
Înapoi x * (2**i)
. Aceasta este în esență inversa funcțieifrexp()
.
math.
modf
(x)¶
se Întoarcă fracționată și întreg piese de x. Ambele rezultate transporta semn de x și sunt plutește.
returnați următoarea valoare în virgulă mobilă după x către y.
Dacă x este egal cu y, returnați y.
Exemple:
vezi șimath.ulp()
.
nou în versiunea 3.9.,
math.
perm
(n, k=None)¶
returnează numărul de moduri de a alege de k obiecte din n itemswithout repetiție și cu scopul.
se Evaluează la n! / (n - k)!
când k <= n
și evaluatesto zero atunci când k > n
.
Dacă k nu este specificat sau nu este nici unul, atunci k implicit la NAND funcția returnează n!
.
ridicăTypeError
Dacă oricare dintre argumente nu sunt întregi.Ridică ValueError
dacă oricare dintre argumentele sunt negative.,
nou în versiunea 3.8.
math.
prod
(iterable, *, start=1)¶
se Calculeze produsul tuturor elementelor de intrare iterable.Valoarea de pornire implicită pentru produs este 1
.
când iterabilul este gol, returnați valoarea de pornire. Această funcție isintended special pentru utilizarea cu valori numerice și poate rejectnon-numeric tipuri.
nou în versiunea 3.8.
math.
remainder
(x, y)¶
se Întoarcă IEEE 754-stil restul de x față de y., Forfinite x și finite nenul y, aceasta este diferența x - n*y
,unde n
este cel mai apropiat număr întreg de la valoarea exactă a coeficientului x /y
. Dacă x / y
este exact la jumătatea distanței între două numere întregi consecutive, thenearest chiar întreg este folosit pentru n
. Restul r = remainder(x,y)
astfel satisface întotdeauna abs(r) <= 0.5 * abs(y)
.,
cazuri Speciale urmați IEEE 754: în special, remainder(x, math.inf)
isx pentru orice finite x și remainder(x, 0)
șiremainder(math.inf, x)
ridica ValueError
pentru orice non-NaN x.Dacă rezultatul de restul operațiunea este zero, zero va avea același semn ca și x.
Pe platforme folosind IEEE 754 binar în virgulă mobilă, rezultatul thisoperation este întotdeauna exact reprezentabile: nu există eroare de rotunjire este introdus.
nou în versiunea 3.7.,
math.
trunc
(x)¶
Înapoi Real
x valoarea trunchiată la unIntegral
(de obicei un număr întreg). Delegați lax.__trunc__()
.
math.
ulp
(x)¶
Returna valoarea de bitul cel mai puțin semnificativ al float x:
-
Dacă x este un NaN (not a number), return x.
-
Dacă x este negativ, întoarcere
ulp(-x)
. -
dacă x este o infinitate pozitivă, returnați x.,
-
Dacă x este egal cu zero, întoarce cel mai mic positivedenormalized reprezentabile float (mai mici decât minimul positivenormalized float,
sys.float_info.min
). -
Dacă x este egal cu cel mai mare pozitive reprezentabile float,întoarce valoarea de bitul cel mai puțin semnificativ al lui x, astfel că firstfloat mai mici decât x este
x - ulp(x)
. -
Altfel (x este pozitiv număr finit), întoarce valoarea de leastsignificant pic de x, astfel că prima float mai mare decât xis
x + ulp(x)
.,
ULP înseamnă „unitate în ultimul loc”.
a se Vedea, de asemenea, math.nextafter()
și sys.float_info.epsilon
.
nou în versiunea 3.9.
Rețineți că frexp()
și modf()
au un alt apel/retur patternthan lor C echivalente: se ia un singur argument și întoarce o pereche ofvalues, mai degrabă decât întoarcerea lor de-a doua valoare de retur printr-un outputparameter’ (nu există nici un astfel de lucru în Python).,
Pentru ceil()
, floor()
și modf()
funcții, rețineți că allfloating-numere de puncte suficient de mare magnitudine sunt exact numere întregi.Python plutește transporta de obicei nu mai mult de 53 de biți de precizie (la fel ca theplatform C tip double), caz în care orice float x cu abs(x) >= 2**52
are în mod necesar nici fracționată biți.