math-Mathematical functions¶

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*ydla 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 njest 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 njest 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 wynosix - 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.

Share

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *