math – Matematické funkce,¶

Čí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 % yvrací 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**52nutně nemá frakční bitů.

Share

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *