Number-theoretic and representation functions¶
math.
ceil
(x)¶
zwraca sufit x, najmniejszą liczbę całkowitą większą lub równą x.Jeśli x nie jest zmiennoprzecinkowym, deleguje do x.__ceil__()
, który powinien zwracać wartośćIntegral
.
math.
comb
(n, k)¶
Zwraca liczbę sposobów wyboru pozycji k z n bez powtórzeń i bez zamówienia.,
ocenia don! / (k! * (n - k)!)
gdyk <= n
i ocenia do zera, gdyk > n
.
nazywany jest również współczynnikiem dwumianowym, ponieważ jest równoważny współczynnikowi K-tego terminu w wielomianowej ekspansji ekspresji (1 + x) ** n
.
podnosiTypeError
jeśli któryś z argumentów nie jest liczbą całkowitą.Podnosi ValueError
jeśli którykolwiek z argumentów jest ujemny.
nowość w wersji 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)¶
Return fmod(x, y)
, zgodnie z definicją biblioteki platformy C. Zauważ, że wyrażenie x % y
może nie zwracać tego samego wyniku. Intencją standardu Cstandard jest to, że fmod(x, y)
być dokładnie (matematycznie; do infiniteprecision) równe x - n*y
dla pewnej liczby całkowitej n takie, że wynik ma taki sam znak jak x i wielkość mniejsza niż abs(y)
., x % y
zwraca wynik ze znakiem y zamiast niego i może nie być dokładnie obliczalny dla argumentów float. Na przykład, fmod(-1e-100, 1e100)
jest -1e-100
, ale wynik -1e-100 % 1e100
jest 1e100-1e-100
, który nie może być przedstawiony dokładnie jako float i zaokrągla się do zaskakującego 1e100
. Z tego powodu funkcja fmod()
jest ogólnie preferowana podczas pracy z plikami całkowitymi, podczas gdy x % y
jest preferowana podczas pracy z liczbami całkowitymi.,
math.
frexp
(x)¶math.
fsum
(iterable)¶
zwraca dokładną sumę zmiennoprzecinkową wartości w iterable. Unikaj utraty precyzji poprzez śledzenie wielu pośrednich sum częściowych:
>>> sum()0.9999999999999999>>> fsum()1.0
dokładność algorytmu zależy od gwarancji arytmetycznych IEEE-754 i typowego przypadku, w którym tryb zaokrąglania jest o połowę parzysty., Na niektórych Nie-Windowsbuildach bazowa biblioteka C używa rozszerzonej precyzji dodawania i może czasami podwajać sumę pośrednią, powodując, że jest wyłączona w najmniej znaczącym bitie.
aby zapoznać się z dalszymi dyskusjami i dwoma alternatywnymi podejściami, zobacz aspn cookbookrecipes dla dokładnego sumowania zmiennoprzecinkowego.
math.
gcd
(*integers)¶
Zwraca największy wspólny dzielnik podanych liczb całkowitych.Jeśli któryś z argumentów jest niezerowy, to zwracana wartość jest największą liczbą całkowitą, która jest dzielnikiem wszystkich argumentów., Jeśli wszystkie argumenty są zerowe, to zwracana wartość to 0
. gcd()
bez argumentów 0
.
nowość w wersji 3.5.
zmieniono w wersji 3.9: Dodano obsługę dowolnej liczby argumentów. Dawniej wspierane były tylko dwa budynki.
math.
isclose
(a, b, *, rel_tol=1E-09, abs_tol=0.0)¶
zwróć True
jeśli wartości a i b są blisko siebie iFalse
,
To, czy dwie wartości są uważane za bliskie, określa się zgodnie z bezwzględnymi i względnymi tolerancjami.
rel_tol jest tolerancją względną – jest to maksymalna dozwolona różnica między a i b, względem większej wartości bezwzględnej a lub b. na przykład, aby ustawić tolerancję 5%, podaj rel_tol=0.05
. Domyślną wartością jest 1e-09
, co zapewnia, że obie wartości są takie same w około 9 cyfrach dziesiętnych. rel_tol musi być większy od zera.
abs_tol to minimalna tolerancja bezwzględna – przydatna przy porównaniach zbliżonych do zera., abs_tol musi wynosić co najmniej zero.
Jeśli nie wystąpią żadne błędy, wynik będzie następujący:abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)
.
wartości specjalne IEEE 754 zNaN
,inf
I-inf
będą zachowywane zgodnie z zasadami IEEE. W szczególności, NaN
nie jest brane pod uwagę, czy nie ma innej wartości, w tym NaN
. inf
I-inf
są tylko blisko siebie.
nowość w wersji 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)¶
zwróćTrue
jeśli x jest NaN (Nie liczbą) iFalse
w przeciwnym razie.
math.
isqrt
(n że n ≤ A2, lub innymi słowy sufit dokładnego pierwiastka kwadratowego N., Dla dodatniego n można to obliczyć za pomocąa = 1 + isqrt(n - 1)
.
nowość w wersji 3.8.
math.
lcm
(*integers)¶
Zwraca najmniejszą wspólną wielokrotność podanych liczb całkowitych.Jeśli wszystkie argumenty są niezerowe, wtedy zwracana wartość jest najmniejszą liczbą całkowitą, która jest wielokrotnością wszystkich argumentów. Jeśli któryś z argumentów jest zerowy, to zwracana wartość to 0
. lcm()
bez argumentów 1
.
nowość w wersji 3.9.,
math.
ldexp
(x, i)¶
Returnx * (2**i)
. Jest to zasadniczo odwrotność funkcjifrexp()
.
math.
modf
(x)¶
zwraca ułamkową i całkowitą część x. oba Wyniki zawierają znak x i są pływakami.
zwraca następną wartość zmiennoprzecinkową po X w kierunku y.
Jeśli x jest równe y, zwraca y.
przykłady:
patrz również math.ulp()
.
nowość w wersji 3.9.,
math.
perm
(n, k=None)¶
Zwraca liczbę sposobów wyboru pozycji k Z n przedmiotów bez powtarzania i z kolejnością.
ocenia don! / (n - k)!
gdyk <= n
i ocenia do zera, gdyk > n
.
Jeśli k nie jest podane lub nie jest None, to K domyślnie jest nand funkcja zwraca n!
.
podnosiTypeError
jeśli któryś z argumentów nie jest liczbą całkowitą.Podnosi ValueError
jeśli którykolwiek z argumentów jest ujemny.,
nowość w wersji 3.8.
math.
prod
(iterable, *, start=1)¶
Oblicz iloczyn wszystkich elementów wejściowych iterable.Domyślną wartością początkową produktu jest 1
.
gdy iterable jest puste, Zwraca wartość początkową. Ta funkcja jest przeznaczona specjalnie do użycia z wartościami liczbowymi i może odrzucać typy Nie-numeryczne.
nowość w wersji 3.8.
math.
remainder
(x, y)¶
zwraca pozostałą część X w stylu IEEE 754 w odniesieniu do y., Dla skończonego X i skończonego niezerowego y, jest to różnica x - n*y
, gdzie n
jest najbliższą liczbą całkowitą do dokładnej wartości ilorazu x /y
. Jeśli x / y
jest dokładnie w połowie drogi między dwiema kolejnymi liczbami całkowitymi, to dla n
jest używana jedna nawet liczba całkowita. Reszta r = remainder(x,y)
w ten sposób zawsze spełnia abs(r) <= 0.5 * abs(y)
.,
specjalne przypadki następują po IEEE 754: w szczególności remainder(x, math.inf)
isx dla dowolnego skończonego X, i remainder(x, 0)
Iremainder(math.inf, x)
podnieść ValueError
dla dowolnego nie-NaN x.Jeśli wynik operacji pozostałej wynosi zero, to zero będzie miało ten sam znak co x.
na platformach używających binarnych zmiennoprzecinkowych IEEE 754 wynik tej operacji jest zawsze dokładnie reprezentowalny: nie ma błędu zaokrąglania.
nowość w wersji 3.7.,
math.
trunc
(x)¶
zwracaReal
wartość X obcięta doIntegral
(Zwykle liczba całkowita). Delegatów dox.__trunc__()
.
math.
ulp
(x)¶
Zwraca wartość najmniej znaczącego bitu float x:
-
Jeśli x jest NaN (Nie liczbą), zwraca x.
-
Jeśli X jest ujemny, zwraca
ulp(-x)
. -
Jeśli x jest dodatnią nieskończonością, zwróć x.,
-
Jeśli x jest równe zeru, zwraca najmniejszy positivedenormalized reprezentowalny float (mniejszy niż minimalny positivenormalized float ,
sys.float_info.min
). -
Jeśli x jest równe największemu dodatniemu zmiennoprzecinkowemu,Zwraca wartość najmniejszego znaczącego bitu X, tak że pierwszy rzut mniejszy od x wynosi
x - ulp(x)
. -
W Przeciwnym Razie (X jest dodatnią liczbą skończoną), Zwraca wartość najmniejszego znaczącego bitu x, tak aby pierwszy float był większy niż xis
x + ulp(x)
.,
ULP oznacza „Jednostka na ostatnim miejscu”.
patrz również math.nextafter()
oraz sys.float_info.epsilon
.
nowość w wersji 3.9.
zauważ, żefrexp()
Imodf()
mają inny wzorzec wywołania / zwrotu niż ich odpowiedniki w języku C: pobierają pojedynczy argument i zwracają parę wartości, zamiast zwracać drugą wartość przez 'outputparameter' (nie ma czegoś takiego w Pythonie).,
dla funkcji ceil()
, floor()
I modf()
należy pamiętać, że wszystkie liczby punktów o wystarczająco dużej wielkości są dokładnymi liczbami całkowitymi.Pływaki Pythona zazwyczaj zawierają nie więcej niż 53 bity precyzji (tak samo jak podwójny typ platformy C), w którym to przypadku każdy float X z abs(x) >= 2**52
niekoniecznie ma ułamkowe bity.