Číslo-teoretických a zastoupení funkcí¶
math.
ceil
(x)¶
Návrat na strop x nejmenší celé číslo větší než nebo rovna hodnotě x.Pokud x není float, delegáty, aby x.__ceil__()
, který by měl vrátitIntegral
hodnota.
math.
comb
(n, k)¶
Návrat na počet způsobů, jak vybrat položky k z n položek bez repetitionand bez pořadí.,
Vyhodnocuje, aby n! / (k! * (n - k)!)
k <= n
a evaluatesto nulu, když k > n
.
také se nazývá binomický koeficient, protože je ekvivalentna koeficientu k-tého termínu v polynomiální expanzivýraz (1 + x) ** n
.
vyvolá TypeError
pokud některý z argumentů nejsou celá čísla.Vyvolává ValueError
, pokud některý z argumentů je negativní.
novinka ve verzi 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)¶
Návrat fmod(x, y)
, jak jsou definovány platformě C knihovna. Všimněte si, že výraz thePython x % y
nemusí vrátit stejný výsledek. Záměr Cstandard je, že fmod(x, y)
přesně (matematicky; infiniteprecision) se rovná x - n*y
pro některé celé číslo n takové, že výsledek má stejné znaménko jako x a velikosti menší, než je abs(y)
., Python x % y
vrací výsledek se znaménkem y a nemusí být přesně výpočetnípro float argumenty. Například fmod(-1e-100, 1e100)
-1e-100
, ale výsledek Python ‚ -1e-100 % 1e100
1e100-1e-100
, který nemůže berepresented přesně tak, jak plavat, a kola do divu 1e100
. Z tohoto důvodu je funkce fmod()
obecně preferována při práci sfloats, zatímco Python x % y
je preferován při práci s celými čísly.,
math.
frexp
(x)¶math.
fsum
(iterable)¶
Návrat přesností plovoucí bod součet hodnot v iterable. Avoidsloss přesnosti tím, že sleduje více intermediate částečné součty:
>>> sum()0.9999999999999999>>> fsum()1.0
algoritmus je přesnost závisí na IEEE-754 aritmetika záruky a thetypical případě, kdy je zaokrouhlení režimu je polovina-i., U některých non-Windowsbuilds, podkladová knihovna C používá rozšířené přidávání přesnosti a mayoccasionally double-round meziprodukt suma způsobuje, že je vypnutý v itsleast významný bit.
pro další diskusi a dva alternativní přístupy viz aspn cookbookrecipes pro přesné součty s plovoucí desetinnou čárkou.
math.
gcd
(*celá čísla)¶
vraťte největší společný dělitel zadaných celočíselných argumentů.Pokud je některý z argumentů nenulový, pak je vrácená hodnota největšípozitivní celé číslo, které je dělitelem všech argumentů., Pokud jsou všechny argumenty nulové, pak je vrácená hodnota 0
. gcd()
bez argumentů 0
.
novinka ve verzi 3.5.
změněno ve verzi 3.9: Přidána podpora pro libovolný počet argumentů. Dříve byly podporovány pouze dvěargumenty.
math.
isclose
(a, b, *, rel_tol=1e-09, abs_tol=0.0)¶
Návrat True
v případě, že hodnoty a a b jsou blízko u sebe, aFalse
jinak.,
zda jsou dvě hodnoty považovány za blízké, se stanoví podle absolutních a relativních tolerancí.
rel_tol je relativní tolerance – to je maximální povolený rozdíl mezi a a b, vzhledem k větší absolutní hodnotu a nebo b.Například, pro nastavení tolerance 5%, projít rel_tol=0.05
. Defaulttolerance je 1e-09
, což zajišťuje, že obě hodnoty jsou stejnés přibližně 9 desetinnými číslicemi. rel_tol musí být větší než nula.
abs_tol je minimální absolutní tolerance-užitečná pro srovnání nearzero., abs_tol musí být alespoň nula.
pokud nedojde k žádným chybám, výsledek bude:abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)
.
IEEE 754 zvláštní hodnoty NaN
inf
-inf
bude behandled podle IEEE pravidla. Konkrétně se NaN
nepovažuje za žádnou jinou hodnotu, včetně NaN
. inf
a -inf
jsou považovány pouze blízko sebe.
novinka ve verzi 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)¶
Návrat True
pokud x je NaN (není číslo), a False
jinak.
math.
isqrt
(n)¶
Návrat na celé číslo odmocnina z nezáporné celé číslo n. To je thefloor přesně odmocnina z n, nebo ekvivalentně největší integera takové, že a2 ≤ n.
Pro některé aplikace, to může být výhodnější mít nejméně integera takové, že n ≤ a2, nebo jinými slovy, strop z přesně odmocnina z n., Pro pozitivní n to lze vypočítat pomocía = 1 + isqrt(n - 1)
.
novinka ve verzi 3.8.
math.
lcm
(*celá čísla)¶
vraťte nejméně běžný násobek zadaných celočíselných argumentů.Pokud jsou všechny argumenty nenulové, pak je vrácená hodnota nejmenšípozitivní celé číslo, které je násobkem všech argumentů. Pokud některý z argumentůje nula, pak vrácená hodnota je 0
. lcm()
bez argumentůotočí 1
.
novinka ve verzi 3.9.,
math.
ldexp
(x, i)¶
Návrat x * (2**i)
. To je v podstatě inverzní funkcefrexp()
.
math.
modf
(x)¶
Návrat frakční a celé číslo části x. Oba výsledky nesou náznak x a jsou plováky.
Návrat další plovoucí desetinnou čárkou hodnoty od x k y.
Pokud se x rovná y, návrat y.
Příklady:
Viz také math.ulp()
.
novinka ve verzi 3.9.,
math.
perm
(n, k=None)¶
Návrat na počet způsobů, jak vybrat položky k z n itemswithout opakování a s cílem.
Vyhodnocuje, aby n! / (n - k)!
k <= n
a evaluatesto nulu, když k > n
.
Pokud k není zadán nebo není žádný, pak k výchozí nand funkce vrátí n!
.
vyvolá TypeError
pokud některý z argumentů nejsou celá čísla.Vyvolává ValueError
, pokud některý z argumentů je negativní.,
novinka ve verzi 3.8.
math.
prod
(iterable, *, start=1)¶
Vypočítat součin všech prvků ve vstupním iterable.Výchozí počáteční hodnota produktu je 1
.
když je iterovatelný prázdný, vraťte počáteční hodnotu. Tato funkce je určena speciálně pro použití s číselnými hodnotami a může odmítnon-numerické typy.
novinka ve verzi 3.8.
math.
remainder
(x, y)¶
vraťte zbytek IEEE 754 ve stylu x vzhledem k y., Forfinite x a konečný nenulový y, to je rozdíl x - n*y
,kde n
je nejbližší celé číslo k přesné hodnoty kvocientu x /y
. Pokud x / y
je přesně na půli cesty mezi dvěma po sobě jdoucích celá čísla, nejbližší, i celé číslo se používá pro n
. Zbytek r = remainder(x,y)
tak vždy splňuje abs(r) <= 0.5 * abs(y)
.,
Zvláštní případy, postupujte podle IEEE 754: zejména, remainder(x, math.inf)
osa x pro libovolné konečné x, a remainder(x, 0)
remainder(math.inf, x)
zvýšení ValueError
pro jakýkoli non-NaN x.Pokud je výsledek zbytek operace je nula, že zero bude mít stejné znaménko jako x.
Na platformách, pomocí IEEE 754 binární floating-point, výsledek pro tuto operaci je vždy přesně reprezentovat: ne chyba v zaokrouhlení, je představen.
novinka ve verzi 3.7.,
math.
trunc
(x)¶
Návrat Real
hodnotu x zaokrouhlenou naIntegral
(obvykle integer). Delegáti nax.__trunc__()
.
math.
ulp
(x)¶
Návrat na hodnotu nejméně významný bit float x:
-
Pokud x je NaN (není číslo), vrátit se x.
-
Pokud x je záporné, vrací
ulp(-x)
. -
Pokud je X kladné nekonečno, vraťte se x.,
-
Pokud x se rovná nule, vrátí nejmenší positivedenormalized reprezentovat float (menší než minimální positivenormalized float,
sys.float_info.min
). -
Pokud se x rovná největší pozitivní reprezentovat float,vrátí hodnotu nejméně významný bit x, takové, že firstfloat menší než x je
x - ulp(x)
. -
jinak (x je kladné konečné číslo), vraťte hodnotu nejmenšího bitu x, takže první plovák větší než xis
x + ulp(x)
.,
ULP znamená „jednotka na posledním místě“.
Viz také math.nextafter()
a sys.float_info.epsilon
.
novinka ve verzi 3.9.
Všimněte si, že frexp()
modf()
mají různé hovoru/návrat patternthan jejich ekvivalenty C: berou jeden argument a vrátí pár ofvalues, spíše než návrat své druhé návratové hodnoty pomocí ‚parametr‘ (není tam žádná taková věc v Pythonu).,
na ceil()
floor()
modf()
funkce, všimněte si, že allfloating-point čísla na dostatečně velkém rozsahu jsou přesné celá čísla.Python se vznáší typicky nést ne více než 53 bits of precision (stejně jako plošině C typu double), v takovém případě žádné float x s abs(x) >= 2**52
nutně nemá frakční bitů.