Basis wiskunde wordt veel gebruikt tijdens het programmeren. We moeten vaak verschillende waarden vergelijken, optellen, vermenigvuldigen, aftrekken en delen bij het schrijven van code.
Soms kan de wiskunde die vereist is in een programma meer betrokken zijn. Mogelijk moet u werken met logaritmische, trigonometrische of exponentiële functies. In deze tutorial zal ik bespreken hoe elk van deze functies in PHP te gebruiken, met voorbeelden.
Deze tutorial zal je kennis laten maken met de ingebouwde wiskundige functies in PHP voor berekeningen van trigonometrie, exponentiatie en logaritme. We zullen ook kijken naar het afronden en genereren van willekeurige getallen.
U kunt de waarde van sinus, cos en tangens van verschillende hoeken berekenen die in radialen worden gegeven sin ($ hoek)
, cos ($ angle)
, en tan ($ hoek)
. Ze komen allemaal terug vlotter
waarden, en de hoekmaat die aan hen wordt doorgegeven, is in radialen.
Dit betekent dat wanneer u eenvoudigweg berekent tan (45)
, je krijgt er geen 1 als resultaat, omdat je in feite de waarde van tangens bij 45 radialen gaat berekenen, wat ongeveer 2.578 graden is. Gelukkig heeft PHP twee zeer nuttige functies voor het converteren van radialen naar graden en omgekeerd. Deze functies zijn rad2deg ()
en deg2rad ()
. Dus, als je eigenlijk de waarde van de tangens van 45 graden wilt berekenen, zul je moeten schrijven tan (deg2rad (45))
.
Het is opmerkelijk dat er geen directe PHP-functie is om de waarde van te berekenen cosec ()
, sec ()
, of kinderbed()
. Deze waarden zijn echter slechts reciprocals van zonde()
, cos ()
, en bruinen()
, dus je kunt hun waarden nog steeds indirect berekenen.
U kunt ook de inverse doen en de hoek berekenen waarbij een trigonometrische hoek een bepaalde waarde heeft. Deze functies worden genoemd als in()
, acos ()
, en een kleurtje()
. Een ding dat je moet onthouden is dat de waarden van zonde en cos nooit verder kunnen gaan dan het bereik van -1 tot 1 voor elke hoek. Dit betekent dat als in()
en acos ()
kan alleen waarden accepteren in het bereik -1 tot 1 als geldige argumenten. Een waarde buiten dit bereik geeft u NaN.
Trigonometrie heeft veel toepassingen zoals het bepalen van het traject van een projectiel of de hoogten en afstanden van verschillende objecten, dus toegang hebben tot deze functies is zeker nuttig als je code schrijft die deze situaties simuleert.
Deze functies zijn ook erg handig als u verschillende elementen wilt tekenen met radiale en hoekwaarden. Laten we zeggen dat je een patroon van cirkels rond een grotere cirkel op een uniforme afstand wilt tekenen. Als je de tutorial over PHP GD Shapes op Envato Tuts + hebt gelezen, herinner je je waarschijnlijk dat bij het tekenen van vormen je coördinaten moet doorgeven in de vorm van x, y-coördinaten, maar het tekenen van cirkelvormige patronen is eenvoudiger met poolcoördinaten.
Als u in dit geval deze goniometrische functies gebruikt, kunt u de gewenste cijfers gebruiken met zonde()
en cos ()
om polaire coördinaten in cartesische vorm om te zetten. Hier is een voorbeeld:
De volgende afbeelding toont het eindresultaat van de bovenstaande PHP-code.
PHP heeft ook enkele exponentiële en logaritmische functies. De exp ($ value)
functie zal de constante teruggeven e verheven tot de kracht van float $ value
. Op dezelfde manier kunt u de logaritme van een gegeven getal berekenen voor elke base met behulp van de log ($ arg, $ base)
functie. Als het $ base
wordt weggelaten, wordt de logaritme berekend op basis van de natuurlijke basis e. Als u de logaritme van een getal naar basis 10 wilt berekenen, kunt u eenvoudig de functie gebruiken log10 ($ arg)
.
Nog een functie die u misschien handig vindt, is pow ($ base, $ exp)
, welke terugkeert $ base
opgewekt tot de macht van $ exp
. Sommigen van u geven er misschien de voorkeur aan om de **
operator. De uitdrukking $ A ** $ b
zal hetzelfde resultaat geven als pow ($ a, $ b)
. U kunt echter in bepaalde situaties onjuiste resultaten krijgen met $ A ** $ b
. Bijvoorbeeld, -1 ** 0,5
zal je geven -1, wat niet klopt. Het berekenen van dezelfde expressie met pow (-1, 0,5)
geeft de juiste waarde, NaN.
Er zijn ook veel andere belangrijke wiskundige functies. U kunt fracties of decimale getallen tot het dichtstbijzijnde gehele getal afronden met behulp van de ceil (float $ value)
functie. Hierdoor worden zowel 2.1 als 2.9 naar 3 geconverteerd. Evenzo kunt u breuken of decimale getallen naar beneden afronden naar het dichtstbijzijnde gehele getal met behulp van de vloer (waarde $ zweven)
functie. Het zal zowel 2.1 als 2.9 tot 2 veranderen.
Deze functies zijn goed voor het eenvoudig afronden van de resultaten van verschillende berekeningen. Laten we zeggen dat u moet weten hoeveel personen een hal kan huisvesten op basis van het gebied. Je uiteindelijke antwoord na de divisie zal hoogstwaarschijnlijk een decimaal getal zijn, maar je kunt mensen niet in breuken verdelen, dus het juiste antwoord zou de bodemwaarde van de berekende waarde zijn.
U wilt vaak een getal naar boven of naar beneden afronden tot op het dichtstbijzijnde gehele getal. U wilt bijvoorbeeld 2,1 tot 2 maar 2,9 tot 3 veranderen. Dit kan eenvoudig worden gedaan met behulp van de rond ($ waarde, $ precisie, $ modus)
functie. De $ precisie
parameter bepaalt het aantal decimalen waarnaar moet worden afgerond. De standaardwaarde van 0 zal eenvoudig de gehele getallen retourneren. De derde $ functie
parameter wordt gebruikt om te bepalen wat er gebeurt als het cijfer dat u wilt omcirkelen precies in het midden ligt. U kunt het gebruiken om op te geven of 3.5 moet worden gewijzigd in 3 of 4.
PHP heeft ook twee functies genaamd min ($ waarden)
en max ($-waarden)
om u te helpen bij het bepalen van de laagste en hoogste waarden in een reeks of reeks getallen. Deze functies kunnen verschillende soorten parameters accepteren, zoals twee arrays en een tekenreeks. Bekijk de documentatie om te zien hoe ze worden vergeleken.
Je kunt ook een integer deling in PHP uitvoeren met behulp van de intdiv ($ dividend, $ deler)
functie. In dit geval wordt alleen het integrale deel van het quotiënt geretourneerd na een deling. Op dezelfde manier kun je ook de rest of modulo krijgen na de verdeling van twee argumenten met behulp van de fmod ($ dividend, $ deler)
functie. De geretourneerde waarde zal altijd kleiner zijn dan de $ deler
in omvang.
Er zijn nog enkele andere handige functies zoals is_nan ($ value)
, is_finite ($ value)
en is_infinite ($ val)
die kan worden gebruikt om te bepalen of de waarde een getal is en, als het een getal is, of het eindig of oneindig is. Onthoud dat PHP elke waarde die te groot is om in een float te passen, als oneindig beschouwt. Zo is_finite ()
zal terugkeren waar
voor 100 factorial maar vals
voor 1000 faculteit.
Willekeurige getallen blijken in een aantal situaties behoorlijk nuttig te zijn. U kunt ze gebruiken om "willekeurige" gegevens voor uw toepassing te genereren of om vijandige instanties in games te spawnen, enz. Het is zeer belangrijk om te onthouden dat geen van de functies die we in deze sectie bespreken, cryptografisch beveiligde willekeurige getallen genereren. Deze functies zijn alleen bedoeld om te worden gebruikt in situaties waarin beveiliging geen probleem is, zoals het tonen van willekeurige begroetingen om bezoekers te herhalen of voor het genereren van willekeurige statistische gegevens.
De functies rand ($ min, $ max)
en mt_rand ($ min, $ max)
kan positieve willekeurige gehele getallen genereren tussen bepaalde waarden, inclusief de $ min
en $ max
waarde. Wanneer de functies zonder parameters worden aangeroepen, genereren ze willekeurige getallen tussen 0 en getrandmax ()
. Jij kan echo
de waarde van getrandmax ()
om het maximaal mogelijke willekeurige aantal te zien dat deze functies op uw platform kunnen genereren.
De functie MT_RAND ()
is 4 keer sneller dan rand()
en retourneert false als $ max
is minder dan $ min
. Beginnend met PHP 7.1.0, rand()
is eigenlijk een alias van gemaakt MT_RAND ()
. Het enige verschil is dat rand()
geeft nog steeds geen fout als $ max
is minder dan $ min
om achterwaartse compatibiliteit te handhaven.
Hier is een lus om willekeurige waarden tussen 0 en 100 miljoen keer te genereren. Zoals je ziet, worden de waarden 0, 50 en 100 ongeveer 10.000 keer gegenereerd met kleine fluctuaties.
Beide functies hebben ook hun eigen zaaimachinefuncties srand ()
en mt_srand ()
om een zaadje te leveren voor de willekeurige nummergeneratoren. U moet er alleen rekening mee houden dat u alleen belt srand ()
en mt_srand ()
eenmaal in je programma. Bellen vóór elke oproep aan rand()
en MT_RAND ()
zal je elke keer dezelfde "willekeurige" nummers geven.
PHP wordt geleverd met veel ingebouwde functies die aan alle dagelijkse rekenbehoeften moeten voldoen. U kunt deze functies gebruiken om iets ingewikkelder berekeningen te maken, zoals GCD, LCM en faculteiten zelf.
Er zijn slechts een paar dingen die u moet onthouden wanneer u deze functies gebruikt. De waarde die wordt geretourneerd door functies zoals verdieping()
en ceil ()
is een geheel getal, maar het is nog steeds een float. Op dezelfde manier verwachten alle trigonometrische functies dat hun hoeken in radialen worden gegeven. U krijgt onjuiste resultaten als u ze een hoekwaarde doorgeeft die u als graadmeter wilde behandelen. Controleer dus de geretourneerde waarde en de verwachte argumenten van al deze functies in de documentatie.