zahlentheoretischen und Darstellung von Funktionen¶
math.
ceil
(x)¶
bringen Sie die Decke von x, die kleinste Ganzzahl, die größer oder gleich x ist.Wenn x ist nicht mit einem Schwimmer, die Delegierten x.__ceil__()
, das sollte die Rückkehr einIntegral
Wert.
math.
comb
(n, k)¶
Geben die Anzahl der Möglichkeiten zur Auswahl von k Elementen aus n Elementen ohne repetitionand ohne Auftrag.,
Wertet n! / (k! * (n - k)!)
aus, wenn k <= n
und wertet auf Null aus, wenn k > n
.
Wird auch als Binomialkoeffizient bezeichnet, da er dem Koeffizienten des k-ten Terms in der Polynomausdehnung Desausdrucks (1 + x) ** n
.
Löst TypeError
aus, wenn eines der Argumente keine Ganzzahlen sind.Löst ValueError
aus, wenn eines der Argumente negativ ist.
Neu in version 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)¶
Zurück fmod(x, y)
, wie definiert durch die-Plattform C-Bibliothek. Beachten Sie, dass derPython-Ausdruck x % y
möglicherweise nicht dasselbe Ergebnis zurückgibt. Die Absicht des Cstandards ist, dass fmod(x, y)
genau (mathematisch; zu infiniteprecision) gleich x - n*y
für einige ganzzahlige n, so dass das Ergebnis hatdas gleiche Vorzeichen wie x und die Größe kleiner als abs(y)
., Pythons x % y
gibt stattdessen ein Ergebnis mit dem Vorzeichen y zurück und ist möglicherweise nicht genau berechenbarfür Float-Argumente. Zum Beispiel ist fmod(-1e-100, 1e100)
-1e-100
, aberdas Ergebnis von Pythons -1e-100 % 1e100
ist 1e100-1e-100
, die nicht genau als float dargestellt werden kann, und rundet auf die überraschende 1e100
. Aus diesem Grund wird die Funktion fmod()
bei der Arbeit mitfloats im Allgemeinen bevorzugt, während Pythons x % y
bei der Arbeit mit Ganzzahlen bevorzugt wird.,
math.
frexp
(x)¶math.
fsum
(durchsuchbar)¶
Zurück eine genaue Gleitkomma-Summe der Werte in den durchsuchbar. Vermeidet Präzisionsverlust durch Verfolgung mehrerer Zwischenteilsummen:
>>> sum()0.9999999999999999>>> fsum()1.0
Die Genauigkeit des Algorithmus hängt von den arithmetischen Garantien IEEE-754 und demtypischen Fall ab, in dem der Rundungsmodus halb gerade ist., Bei einigen Nicht-Windowsbuilds verwendet die zugrunde liegende C-Bibliothek eine erweiterte Präzisionsaddition und kann gelegentlich eine Zwischensumme verdoppeln, wodurch sie in ihrem letzten signifikanten Bit deaktiviert wird.
Weitere Diskussionen und zwei alternative Ansätze finden Sie in den ASPN cookbookrecipes für eine genaue Gleitkomma-Summierung.
math.
gcd
(*Ganzzahlen)¶
Gibt den größten gemeinsamen Divisor der angegebenen ganzzahligen Argumente zurück.Wenn eines der Argumente ungleich Null ist, ist der zurückgegebene Wert der größtepositive Ganzzahl, die ein Divisor aller Argumente ist., Wenn alle Argumentensind Null, dann ist der zurückgegebene Wert 0
. gcd()
ohne argumentsreturns 0
.
Neu in version 3.5.
Geändert in version 3.9: Unterstützung für eine beliebige Anzahl von Argumenten. Bisher wurden nur zwei Argumente unterstützt.
math.
isclose
(a, b, *, rel_tol=1e-09, abs_tol=0.0)¶
Zurück True
wenn die Werte a und b sind einander nah, undFalse
sonst.,
Ob zwei Werte als nahe betrachtet werden oder nicht, wird nach vorgegebenen absoluten und relativen Toleranzen bestimmt.
rel_tol ist die relative Toleranz – es ist der maximal zulässige Unterschiedzwischen a und b, relativ zum größeren absoluten Wert von a oder b. Um beispielsweise eine Toleranz von 5% festzulegen, übergeben Sie rel_tol=0.05
. Die defaulttolerance ist 1e-09
, was sicherstellt, dass die beiden Werte gleich sindmit ungefähr 9 Dezimalstellen. rel_tol muss größer als Null sein.
abs_tol ist die minimale absolute Toleranz-nützlich für Vergleiche nahe Null., abs_tol muss mindestens Null sein.
Wenn keine Fehler auftreten, lautet das Ergebnis:abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)
.
Die IEEE 754-Sonderwerte von NaN
, inf
und -inf
werden gemäß den IEEE-Regeln behandelt. Insbesondere wird NaN
nicht berücksichtigtklose zu einem anderen Wert, einschließlich NaN
. inf
und -inf
werden nur in ihrer Nähe betrachtet.
Neu in version 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)¶
Zurück True
falls x ein NaN (not a number), und False
sonst.
math.
isqrt
(n)¶
Gibt die ganzzahlige Quadratwurzel der nichtnegativen Ganzzahl n zurück. Dies ist der Boden der genauen Quadratwurzel von n oder äquivalent der größten ganzen Zahl, so dass a2 ≤ n.
Für einige Anwendungen kann es bequemer sein, die geringsten ganzen Zahlen zu haben, so dass n ≤ a2, oder mit anderen Worten die Decke vondie genaue Quadratwurzel von n≤., Für positives n kann dies mita = 1 + isqrt(n - 1)
berechnet werden.
Neu in version 3.8.
math.
lcm
(*Ganzzahlen)¶
Gibt das kleinste gemeinsame Vielfache der angegebenen ganzzahligen Argumente zurück.Wenn alle Argumente ungleich Null sind, ist der zurückgegebene Wert der kleinstepositive Ganzzahl, die ein Vielfaches aller Argumente ist. Wenn eines der Argumentsist Null, dann ist der zurückgegebene Wert 0
. lcm()
ohne argumentsreturns 1
.
Neu in version 3.9.,
math.
ldexp
(x, i)¶
Zurück x * (2**i)
. Dies ist im Wesentlichen die Umkehrung der Funktionfrexp()
.
math.
modf
(x)¶
Gibt die gebrochenen und ganzzahligen Teile von x zurück.
Gibt den nächsten Gleitkommawert nach x in Richtung y zurück.
Wenn x gleich y ist, geben Sie y zurück.
Beispiele:
Siehe auch math.ulp()
.
Neu in version 3.9.,
math.
perm
(n, k=None)¶
Gibt die Anzahl der Möglichkeiten zur Auswahl von k Elementen aus n Elementen zurückohne Wiederholung und mit Reihenfolge.
Wertet n! / (n - k)!
aus, wenn k <= n
und wertet auf Null aus, wenn k > n
.
Wenn k nicht angegeben ist oder None, dann ist k standardmäßig nund die Funktion gibt n!
.
Löst TypeError
aus, wenn eines der Argumente keine Ganzzahlen sind.Löst ValueError
aus, wenn eines der Argumente negativ ist.,
Neu in version 3.8.
math.
prod
(iterierbar, *, start=1)¶
Berechnet das Produkt aller Elemente in der Eingabe durchsuchbar.Der Standardstartwert für das Produkt ist 1
.
Wenn der Iterable leer ist, geben Sie den Startwert zurück. Diese Funktion ist speziell für die Verwendung mit numerischen Werten vorgesehen und kann nicht numerische Typen ablehnen.
Neu in version 3.8.
math.
remainder
(x, y)¶
Gibt den Rest von x im IEEE 754-Stil in Bezug auf y zurück., Für Finite x und finite ungleich Null y ist dies der Unterschied x - n*y
, wobei n
die nächste Ganzzahl ist der genaue Wert des Quotienten x /y
. Wenn x / y
genau auf halbem Weg zwischen zwei aufeinanderfolgenden Ganzzahlen liegt, wird für n
die klarste gerade Ganzzahl verwendet. Der Rest r = remainder(x,y)
erfüllt somit immer abs(r) <= 0.5 * abs(y)
.,
Sonderfälle folgen IEEE 754: insbesondere remainder(x, math.inf)
isx für jedes endliche x und remainder(x, 0)
undremainder(math.inf, x)
raise ValueError
für jedes Nicht-NaN x. Wenn das Ergebnis der Restoperation Null ist, hat diese nulldas gleiche Vorzeichen wie x.remainder(x, 0)
/ p >
Auf Plattformen mit binärem Gleitkomma IEEE 754 ist das Ergebnis dieser Operation immer genau darstellbar: Es wird kein Rundungsfehler eingeführt.
Neu in version 3.7.,
math.
trunc
(x)¶
Geben Sie die Real
Wert x abgeschnitten zu einemIntegral
(in der Regel eine Ganzzahl). Die Delegiertenx.__trunc__()
.
math.
ulp
(x)¶
Geben Sie den Wert des am wenigsten signifikanten Bits des Floats x:
-
Wenn x ein NaN (keine Zahl) ist, geben Sie x.
-
Wenn x negativ ist, geben Sie
ulp(-x)
zurück. -
Wenn x eine positive Unendlichkeit ist, geben Sie x zurück.,
-
Wenn x gleich Null ist, geben Sie den kleinsten positiv darstellbaren Float zurück (kleiner als der minimale positiv normalisierte float,
sys.float_info.min
). -
Wenn x gleich dem größten positiv darstellbaren float ist,geben Sie den Wert des am wenigsten signifikanten Bits von x zurück, sodass der firstfloat kleiner als x
x - ulp(x)
. -
Andernfalls (x ist eine positive endliche Zahl) geben Sie den Wert des leastsignificant-Bits von x zurück, sodass der erste Float größer als xis
x + ulp(x)
.,
ULP steht für „Einheit an letzter Stelle“.
Siehe auch math.nextafter()
und sys.float_info.epsilon
.
Neu in version 3.9.
Beachten Sie, dass frexp()
und modf()
ein anderes Call/return-Muster habendann ihre C-Äquivalente: Sie nehmen ein einzelnes Argument und geben ein Paar zurückvalues, anstatt ihren zweiten Rückgabewert über einen ‚outputparameter‘ zurückzugeben (so etwas gibt es in Python nicht).,
Für die Funktionen ceil()
, floor()
und modf()
beachten Sie, dass alle Gleitkommazahlen von ausreichend großer Größe exakte Ganzzahlen sind.Python Floats tragen in der Regel nicht mehr als 53 Bits Genauigkeit (das gleiche wie dieplatform C double type), in diesem Fall hat jeder float x mit abs(x) >= 2**52
notwendigerweise keine Bruchteile Bits.