– Nummer-teoretisk og representasjon funksjoner¶
math.ceil(x)¶
gå Tilbake tak i x, den minste heltall større enn eller lik x.Hvis x er ikke en dupp, delegater til x.__ceil__(), som skal gå i enIntegral verdi.
math.comb(n, k)¶
Returnere antall måter å velge k elementer fra n elementer uten repetitionand uten ordre.,
Beregner n! / (k! * (n - k)!) ved k <= n og evaluatesto null når k > n.
Også kalt den binomiske koeffisient fordi det er equivalentto koeffisienten k-th sikt i polynomisk utvidelse av theexpression (1 + x) ** n.
Hever TypeError hvis et av argumentene ikke er heltall.Reiser ValueError hvis et av argumentene er negative.
Ny i versjon 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)¶
Tilbake fmod(x, y), som definert av plattformen C-biblioteket. Vær oppmerksom på at thePython uttrykk x % y kan ikke gi samme resultat. Hensikten med Cstandard er at fmod(x, y) være nøyaktig (matematisk; å infiniteprecision) lik x - n*y for noen heltall n slik at resultatet hasthe samme tegn som x-og størrelsesorden mindre enn abs(y)., Python ‘ s x % yreturnerer et resultat med tegnet av y i stedet, og kan ikke være nøyaktig computablefor flyte argumenter. For eksempel, fmod(-1e-100, 1e100) er -1e-100, butthe resultat av Python ‘ s -1e-100 % 1e100 er 1e100-1e-100, som ikke berepresented akkurat som en dupp, og runder til overraskende 1e100. Forthis grunn, funksjon fmod() er generelt foretrukket når du arbeider withfloats, mens Python ‘ s x % y er foretrukket når du arbeider med heltall.,
math.frexp(x)¶math.fsum(iterable)¶
Gå en nøyaktig floating point summen av verdiene i iterable. Avoidsloss av presisjon ved sporing av flere mellomliggende delsummer:
– >
>>> sum()0.9999999999999999>>> fsum()1.0
algoritmen nøyaktighet avhenger av IEEE 754 aritmetiske garantier og thetypical tilfelle hvor avrunding modus er halv-selv., På enkelte ikke-Windowsbuilds, er den underliggende C library bruker utvidet presisjon tillegg og mayoccasionally dobbel-runde på middels summen forårsaker den til å være av itsleast signifikante bit.
For ytterligere diskusjon og to alternative tilnærminger, se ASPN cookbookrecipes for nøyaktig floating point summering.
math.gcd(*heltall)¶
Returnerer største felles divisor for de angitte heltall argumenter.Hvis noen av argumentene er ikke-null, så den returnerte verdien er largestpositive heltall som er en divisor av alle argumenter., Hvis alle argumentsare null, så den returnerte verdien er 0. gcd() uten argumentsreturns 0.
Ny i versjon 3.5.
Endret i versjon 3.9: Lagt til støtte for et vilkårlig antall argumenter. Tidligere, bare twoarguments ble støttet.
math.isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0)¶
Tilbake True hvis verdiene a og b er nær hverandre ogFalse annet.,
Om to verdier er vurdert i nærheten er fastsatt i henhold togiven absolutte og relative toleranser.
rel_tol er relativ toleranse – det er maksimalt tillatt differencebetween a og b, i forhold til større absolutte verdien av a eller b.For eksempel For å angi en toleranse på 5%, pass rel_tol=0.05. Den defaulttolerance er 1e-09, som sikrer at de to verdiene er samewithin om 9 desimaler. rel_tol må være større enn null.
abs_tol er minimum absolutt toleranse – nyttig for sammenligninger nearzero., abs_tol må være minst null.
Hvis ingen feil oppstår, vil resultatet være:abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol).
IEEE 754 spesielle verdier av NaN, inf, og -inf vil behandled i henhold til IEEE regler. Spesielt, NaN er ikke consideredclose til noen annen verdi, herunder NaN. inf og -inf er onlyconsidered nær til seg selv.
Ny i versjon 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)¶
Tilbake True hvis x er et NaN (ikke nummer), og False annet.
math.isqrt(n)¶
Returnerer heltall kvadratroten av ikke-negative heltall n. Dette er thefloor av den eksakte kvadratroten av n, eller tilsvarende den største integera slik at a2 ≤ n.
For noen programmer, kan det være mer praktisk å ha minst integera slik at n ≤ a2, eller med andre ord taket ofthe eksakt kvadratroten av n., For positive n, dette kan beregnes ved hjelp ava = 1 + isqrt(n - 1).
Ny i versjon 3.8.
math.lcm(*heltall)¶
Returnerer minste felles multiplum av den angitte heltall argumenter.Hvis alle argumentene er ikke-null, så den returnerte verdien er smallestpositive heltall som er et multiplum av alle argumenter. Hvis noen av argumentsis null, så den returnerte verdien er 0. lcm() uten argumentsreturns 1.
Ny i versjon 3.9.,
math.ldexp(x, i)¶
Tilbake x * (2**i). Dette er i hovedsak den inverse av funksjonfrexp().
math.modf(x)¶
gå Tilbake til brøk og heltall deler av x. Begge resultatene bære signof x og flyter.
Gå neste floating-point verdi etter x mot y.
Hvis x er lik y, gå tilbake y.
Eksempel:
Se også math.ulp().
Ny i versjon 3.9.,
math.perm(n, k=Ingen)¶
Returnere antall måter å velge k elementer fra n itemswithout repetisjon og med bestillingen.
Beregner n! / (n - k)! ved k <= n og evaluatesto null når k > n.
Hvis k ikke er angitt eller er Ingen, så k standarder til nand-funksjonen returnerer n!.
Hever TypeError hvis et av argumentene ikke er heltall.Reiser ValueError hvis et av argumentene er negative.,
Ny i versjon 3.8.
math.prod(iterable, *, start=1)¶
Beregne produktet av alle elementene i input iterable.Standard start-verdi for produkt er 1.
Når iterable er tom, går du tilbake til start-verdien. Denne funksjonen isintended spesielt for bruk med numeriske verdier, og kan rejectnon-numeriske typer.
Ny i versjon 3.8.
math.remainder(x, y)¶
gå Tilbake IEEE 754-stil resten av x med hensyn til y., Forfinite x og endelig ikke-null y, dette er forskjellen x - n*y,der n er det nærmeste heltall til den nøyaktige verdien av kvotienten x /y. Hvis x / y er nøyaktig halvveis mellom to etterfølgende heltall, nærmeste selv heltall brukes for n. Resten r = remainder(x,y) dermed alltid tilfredsstiller abs(r) <= 0.5 * abs(y).,
Spesielle tilfeller følger IEEE 754: i særdeleshet remainder(x, math.inf) isx for alle finitte x, og remainder(x, 0) ogremainder(math.inf, x) heve ValueError for alle ikke-NaN x.Hvis resultatet av resten drift er null, som null vil havethe samme tegn som x.
På plattformer ved hjelp av IEEE 754 binære floating-point, resultatet av thisoperation er alltid nøyaktig representable: ingen avrunding feil blir introdusert.
Ny i versjon 3.7.,
math.trunc(x)¶
Tilbake Real verdien for x vil bli avkuttet til enIntegral (vanligvis et heltall). Delegater tilx.__trunc__().
math.ulp(x)¶
Returnere verdien av den minst signifikante bit av float x:
-
Hvis x er et NaN (ikke nummer), retur x.
-
Hvis x er negativ, retur
ulp(-x). -
Hvis x er et positivt infinity, retur x.,
-
Hvis x er lik null, returnerer den minste positivedenormalized representable float (mindre enn den minste positivenormalized flyte,
sys.float_info.min). -
Hvis x er lik den største positive representable flyte,returnere verdien av den minst signifikante bit av x, slik at firstfloat mindre enn x
x - ulp(x). -
Ellers (x er en positiv begrenset antall), returnere verdien av leastsignificant bit av x, slik at den første flyte større enn xis
x + ulp(x).,
ULP står for «Enhet i den Siste Plassen».
Se også math.nextafter() og sys.float_info.epsilon.
Ny i versjon 3.9.
Merk at frexp() og modf() har en annen samtale/retur patternthan sine C-ekvivalenter: de tar ett argument og returnerer et par ofvalues, snarere enn å returnere den andre tilbake verdi gjennom en «outputparameter’ (det er ingen slike ting i Python).,
For ceil(), floor(), og modf() funksjoner, merk at allfloating-punkt-tall av tilstrekkelig stort omfanget er eksakte heltall.Python flyter vanligvis bærer ikke mer enn 53 bits presisjon (samme som theplatform C dobbel type), i hvilket tilfelle float x abs(x) >= 2**52nødvendigvis har ingen brøk biter.