PHP – Matematika

Použití matematických funkcí v PHP.

Náhodné číslo

Náhodné číslo vytvoříme funkcí rand(min, max)

echo(rand(1, 3)); // Vypíše číslo 1,2 nebo 3

Pokud nezapíšeme do parametrů funkce žádné hodnoty a necháme závorku prázdnou, vypíše se nám náhodné číslo od 0 do ∞.

 

Zaokrouhlování

Pro zaokrouhlování máme 3 funkce. Důležité je že všechny parametry s desetinnými místy se oddělují tečkou a pokud je více parametrů tak se oddělují čárkou (to platí u všech funkcí).

Zaokrouhlování funkcí round()

Pro zaokrouhlení je funkce round() nejvhodnější. Následující příklad nám zobrazí opět 2 parametry. První parametr je číslo, které chceme zaokrouhlit a druhý parametr je nepovinný a udává nám na kolik desetinných míst chceme naše číslo zaokrouhlit.

echo(round(3.1456, 2)); // Vypíše nám 3.15

 

Zaokrouhlování funkcí ceil()

Funkce ceil() má pouze jeden parametr a vypíše nejbližší celé číslo, které je o jedno vyšší než je číslo v zadaném parametru.

echo(ceil(3.3)); // Vypíše číslo 4

 

Zaokrouhlování funkcí floor()

Funkce floor() je opakem funkce ceil(), ale nezmenší celé číslo o jednu. Prakticky jen odstraní desetinná místa a nechá celé číslo, které jsme zadali do parametru.

echo(floor(3.9)); // Vypíše číslo 3

 

Umocňování a odmocňování

K umocnění je funkce pow().

echo(pow(8, 2)); // Vypíše 64

Klasický zápis vypadá 82. První parametr je základ mocniny a druhý parametr je mocnitel.

K odmocnění máme funkci sqrt().

echo(sqrt(25)); // Vypíše číslo 5

 

Logaritmy a absolutní hodnota

Logaritmy

Máme dvě funkce pro práci s logaritmem. Funkci log(n) – přirozený logaritmus čísla n; a funkci log(n, z) – logaritmus čísla n při daném základě z.

Absolutní hodnota

Funkce abs() nám převrací záporné číslo na kladné a pokud je kladné tak se nic nemění. Má pouze jeden parametr.

echo(abs(-7.3)); // Vypíše 7.3
echo(abs(3.7)); // Vypíše 3.7

 

Goniometrické funkce

Funkce sin()cos(), tan() a inverzní funkce k sin, cos a tan – asin(), acos(), atan().

 

Početní funkce s knihovnou BCMath

V PHP je knihovna BCMath, jejíž používání neobsahuje rizika spojená s používáním typu float. Tato desetinná čísla se totiž používají jako řetězce a funkce této knihovny jsou matematické operace. BCMath se stará o přesnost na počet desetinných míst, které si sami zvolíte, přesnost máte vždy zaručenou protože BCMath nepracuje s floaty ale řetězci, které sám propočítává celočíselnou aritmetikou a s floatem nemá nic společného.
Funkce BCMath jsou funkce, kde první operátor je levá strana rovnice a druhý operátor je pravá strana rovnice. Jednotlivé funkce reprezentují pak matematickou operaci a výsledkem je buď string (výsledek matematické operace) nebo boolean (výsledek porovnání).
Ve všech funkcích je ale jeden nepovinný parametr – číslo. Tento parametr udává na kolik číslic se má zaokrouhlit výsledek. Jestliže chceme pro všechny funkce zaokrouhlovat na stejný počet číslic, můžeme využít funkci bcscale(), jejíž jediným parametrem je právě počet míst na který se mají zaokrouhlovat výsledky.

bcadd(číslo1, číslo2) - sčítání

bcsub(číslo1, číslo2) - odčítání

bcmul(číslo1, číslo2) - násobení

bcdiv(číslo1, číslo2) - dělení

bcsqrt(číslo, odmocnovatel) - odmocňování

bcpow(druhá odmocnina zadaného čísla, umocňovatel) - umocnění

bccomp(cislo1, cislo2) - porovnání dvou čísel (návratové hodnoty -1,0,1)

 

Převod mezi soustavami

Převody mezi desítkovou, šestnáctkovou, dvojkovou a osmičkovou soustavou.

decOct(číslo) – převod z desítkové do osmičkové
decHex(číslo) – převod z desítkové do šestnáctkové
decBin(číslo) – převod z desítkové do dvojkové
octDec(číslo) – převod z osmočkové do desítkové
hexDec(číslo) – převod z šestnáctkové do osmičkové
binDec(číslo) – převod z dvojkové do desítkové

echo(decOct(16));  //20
echo(decHex(16));  //10
echo(decBin(20));  //10100
echo(binDec(101)); //5
echo(hexDec(16)); //22
echo(octDec(10)); //8

 

Dále existuje funkce pro převedení z jakékoli soustavy do jiné.

base_convert(číslo, ze soustavy, do soustavy)

 

Matematické konstanty

Konstanta Hodnota Popis
M_PI 3.14159265358979323846
M_E 2.7182818284590452354 e
M_LOG2E 1.4426950408889634074 log_2 e
M_LOG10E 0.43429448190325182765 log_10 e
M_LN2 0.69314718055994530942 log_e 2
M_LN10 2.30258509299404568402 log_e 10
M_PI_2 1.57079632679489661923 pi/2
M_PI_4 0.78539816339744830962 pi/4
M_1_PI 0.31830988618379067154 1/pi
M_2_PI 0.63661977236758134308 2/pi
M_SQRTPI 1.77245385090551602729 sqrt(pi) [4.0.2]
M_2_SQRTPI 1.12837916709551257390 2/sqrt(pi)
M_SQRT2 1.41421356237309504880 sqrt(2)
M_SQRT3 1.73205080756887729352 sqrt(3) [4.0.2]
M_SQRT1_2 0.70710678118654752440 1/sqrt(2)
M_LNPI 1.14472988584940017414 log_e(pi) [4.0.2]
M_EULER 0.57721566490153286061 Eulerova konstanta [4.0.2]

(14)

Sdílet na

FacebookTwitterGoogleTumblrLinkedInRedditPinterest


Napsat komentář