Trigonometrie, numere aleatoare și multe altele cu funcții de matematică PHP încorporate

Matematica de bază este folosită foarte mult în timpul programării. Trebuie să comparăm frecvent, să adăugăm, să înmulțim, să scădem și să împărțim diferite valori la scrierea codului. 

Uneori, matematica necesară unui program poate fi mai mult implicată. Este posibil să aveți nevoie să lucrați cu funcții logaritmice, trigonometrice sau exponențiale. În acest tutorial, voi discuta cum să folosiți fiecare dintre aceste funcții în PHP, cu exemple.

Acest tutorial vă va prezenta funcțiile de matematică încorporate în PHP pentru a face calcule trigonometrice, exponentiere și logaritmice. Vom analiza, de asemenea, rotunjirea și generarea de numere aleatorii.

Funcțiile trigonometrice în PHP

Puteți calcula valoarea sinus, cos și tangent de diferite unghiuri date în radiani folosind sin (unghi $), cos (unghi $), și tan ($ unghi). Toți se întorc pluti valorile și măsurarea unghiului care le este transmisă este în radiani.

Aceasta înseamnă că atunci când pur și simplu calculați tan (45), nu veți obține 1 ca ieșire, deoarece veți calcula de fapt valoarea tangentei la 45 de radiani, care este de aproximativ 2578 de grade. Din fericire, PHP are două funcții foarte utile pentru conversia radianelor în grade și invers. Aceste funcții sunt rad2deg () și deg 2rad (). Deci, dacă doriți să calculați valoarea tangentei de 45 de grade, va trebui să scrieți tan (deg 2rad (45)).

 Este demn de remarcat faptul că nu există nici o funcție PHP directă pentru a calcula valoarea lui cosec (), sec (), sau pat(). Cu toate acestea, aceste valori sunt reciprocale păcat(), cos (), și bronza(), astfel încât să puteți calcula valorile acestora în mod indirect.

De asemenea, puteți face inversul și puteți calcula unghiul la care un unghi trigonometric are o anumită valoare. Aceste funcții sunt numite ca în(), acos (), și un bronz(). Un lucru pe care trebuie să-l amintiți este că valorile păcatului și cosului nu pot depăși niciodată intervalul de la -1 la 1 pentru orice unghi. Aceasta înseamnă că ca în() și acos () pot accepta valori cuprinse între -1 și 1 ca argumente valide. O valoare în afara acestui interval vă va da NaN.

Trigonometria are multe aplicații cum ar fi determinarea traiectoriei unui proiectil sau a înălțimilor și distanțelor diferitelor obiecte, astfel că accesul la aceste funcții este cu siguranță util dacă scrieți un cod care simulează aceste situații.

Aceste funcții sunt, de asemenea, foarte utile atunci când doriți să desenați diferite elemente folosind valori radiale și unghiulare. Să presupunem că doriți să desenați un cerc de cercuri în jurul unui cerc mai mare la o distanță uniformă. Dacă ați citit tutorialul PHP GD Shapes pe Envato Tuts +, probabil că vă aduceți aminte că desenarea oricărei forme va necesita trecerea coordonatelor sub formă de coordonate x, y, dar desenarea modelelor circulare este mai ușoară cu coordonate polare.

Utilizarea acestor funcții trigonometrice în acest caz vă va ajuta să desenați cifrele dorite folosind păcat() și cos () pentru a transforma coordonatele polare în forma cartesiană. Iată un exemplu:

Următoarea imagine prezintă rezultatul final al codului PHP de mai sus.

Funcțiile exponențiale și logaritmice

PHP are, de asemenea, unele funcții exponențiale și logaritmice. exp (valoare $) funcția va returna constanta e ridicat la puterea de plutitor valoarea $. În mod similar, puteți calcula logaritmul unui număr dat la orice bază folosind log ($ arg, $ base) funcţie. În cazul în care $ bază este omisă, logaritmul va fi calculat folosind baza naturală e. Dacă doriți să calculați logaritmul unui număr la baza 10, puteți pur și simplu utiliza funcția log10 ($ arg).

O altă funcție pe care ați putea-o folosi este pow ($ base, $ exp), care se întoarce $ bază ridicat la puterea de $ exp. Unii dintre dvs. ar putea prefera să folosească ** operator. Expresia $ A $ b ** va da același rezultat ca și pow ($ a, $ b). Cu toate acestea, este posibil să obțineți rezultate incorecte în anumite situații $ A $ b **. De exemplu, -1 ** 0.5 iti voi da -1, care este incorectă. Calculând aceeași expresie utilizând pow (-1, 0,5) va da valoarea corectă, NaN.

Alte funcții matematice utile

Numere rotunjite

Există și multe alte funcții matematice importante. Aveți posibilitatea să răsfoiți fracții sau numere zecimale până la cel mai apropiat număr întreg folosind ceil (valoare float $) funcţie. Aceasta va converti atât 2.1, cât și 2.9 la 3. În mod similar, puteți răsfoi fracții sau numere zecimale până la cel mai apropiat număr întreg folosind podea (valoare float $) funcţie. Acesta va schimba atât 2.1 și 2.9 la 2.

Aceste funcții sunt bune pentru a obține cu ușurință rezultate de la calcule diferite. Să presupunem că trebuie să știți câte persoane poate găzdui o sală în funcție de zona sa. Răspunsul dvs. final după divizare va fi cel mai probabil un număr zecimal, dar nu puteți diviza oamenii în fracții, deci răspunsul corect ar fi valoarea de bază a valorii calculate.

Veți dori adesea să răsfoiți un număr în sus sau în jos până la cel mai apropiat număr întreg. De exemplu, s-ar putea să doriți să schimbați între 2,1 și 2, dar de la 2,9 la 3. Acest lucru se poate face cu ușurință folosind rotundă (valoare $, precizie $, modul $) funcţie. $ precizie parametrul determină numărul de zecimale la care se răsfoiește. Valoarea implicită de 0 va returna pur și simplu întregi. Al treilea mod de $ parametrul este folosit pentru a determina ce se întâmplă dacă numărul pe care doriți să-l răsfoiți se află exact în mijloc. Puteți să o utilizați pentru a specifica dacă 3,5 ar trebui să fie schimbat la 3 sau 4.

Minim și maxim

De asemenea, PHP are două funcții numite min (valorile $) și max (valori $) pentru a vă ajuta să stabiliți valorile cele mai scăzute și cele mai înalte dintr-un set sau o serie de numere. Aceste funcții pot accepta diferite tipuri de parametri, cum ar fi două tablouri și un șir. Ar trebui să aruncați o privire la documentație pentru a vedea cum vor fi comparate.

Divizia intreg

Puteți de asemenea să efectuați divizări întregi în PHP folosind intdiv ($ dividend, $ divisor) funcţie. În acest caz, numai partea integrală a coeficientului este returnată după divizare. În mod similar, puteți obține și restul sau modulo după divizarea a două argumente folosind fmod ($ dividend, $ divisor) funcţie. Valoarea returnată va fi întotdeauna mai mică decât valoarea $ împărțitor în magnitudine.

Există și alte funcții utile, cum ar fi is_nan (valoare $), is_finite (valoare $) și is_infinite ($ val) care poate fi folosit pentru a determina dacă valoarea este un număr și, dacă este un număr, dacă este finit sau infinit. Rețineți că PHP consideră că orice valoare care este prea mare pentru a se încadra într-un flotor este infinită. Asa de is_finite () va reveni Adevărat pentru 100 de factoriali dar fals pentru 1000 factoriali.

Generarea de numere aleatoare în PHP

Numerele aleatoare se dovedesc a fi destul de utile într-o serie de situații. Puteți să le folosiți pentru a genera date "aleatoare" pentru aplicația dvs. sau pentru a genera instanțe inamice în jocuri etc. Este foarte important să rețineți că niciuna dintre funcțiile pe care le discutăm în această secțiune generează numere aleatorii securizate criptografic. Aceste funcții sunt destinate doar utilizării în situații în care securitatea nu este o problemă, cum ar fi afișarea textelor întâmpinate de întâmpinare pentru a repeta vizitatorii sau pentru a genera date statistice aleatorii.

Funcțiile rand ($ min, $ max) și mt_rand ($ min, $ max) pot genera numere întregi aleatorii între valorile date, inclusiv $ min și $ max valoare. Când funcțiile sunt chemați fără parametri, ele generează numere aleatorii între 0 și getrandmax (). Poti ecou valoarea a getrandmax () pentru a vedea numărul maxim posibil de aleatoare pe care aceste funcții îl pot genera pe platforma dvs..

Functia mt_rand () este de 4 ori mai rapid decât rand () și întoarce fals dacă $ max e mai puțin decât $ min. Pornind de la PHP 7.1.0, rand () a fost de fapt făcut un alias de mt_rand (). Singura diferență este aceea rand () încă nu dau o eroare dacă $ max e mai puțin decât $ min pentru a menține compatibilitatea înapoi.

Aici este o buclă pentru a genera valori aleatorii între 0 și 100 de milioane de ori. După cum puteți vedea, valorile 0, 50 și 100 sunt generate de aproximativ 10.000 de ori cu fluctuații ușoare.

Ambele aceste funcții au, de asemenea, propriile funcții de însămânțare numite srand () și mt_srand () pentru a furniza o sămânță pentru generatoarele de numere aleatoare. Ar trebui să rețineți că doar sunați srand () și mt_srand () o dată în programul tău. Apelați-le înainte de fiecare apel la rand () și mt_rand () vă va oferi aceleași numere "aleatoare" de fiecare dată.

Gândurile finale

PHP vine cu o mulțime de funcții încorporate care ar trebui să îndeplinească toate nevoile de calcul de zi cu zi. Puteți utiliza aceste funcții pentru a efectua calcule ușor mai complicate cum ar fi GCD, LCM și factoriali.

Există doar câteva lucruri pe care trebuie să le rețineți atunci când utilizați aceste funcții. De exemplu, valoarea returnată de funcții cum ar fi podea() și ceil () este un număr întreg, dar este încă un flotor. În mod similar, toate funcțiile trigonometrice se așteaptă ca unghiurile să fie date în radiani. Veți obține rezultate incorecte dacă le transmiteți o valoare a unghiului pe care ați vrut să o tratezi ca măsură de grad. Asigurați-vă că verificați valoarea returnată și argumentele așteptate ale tuturor acestor funcții în documentație.

Cod