Trigonometrie, Zufallszahlen und mehr mit integrierten PHP-Mathematikfunktionen

Grundlegende Mathematik wird häufig beim Programmieren verwendet. Beim Schreiben von Code müssen wir häufig verschiedene Werte vergleichen, addieren, multiplizieren, subtrahieren und unterteilen. 

Manchmal kann die für ein Programm erforderliche Mathematik komplizierter sein. Möglicherweise müssen Sie mit logarithmischen, trigonometrischen oder exponentiellen Funktionen arbeiten. In diesem Lernprogramm werde ich die Verwendung dieser Funktionen in PHP anhand von Beispielen erläutern.

Dieses Tutorial führt Sie in die integrierten mathematischen Funktionen in PHP ein, um Trigonometrie, Exponentiation und Logarithmusberechnungen durchzuführen. Wir werden auch das Runden und das Generieren von Zufallszahlen betrachten.

Trigonometrische Funktionen in PHP

Sie können den Wert von Sinus, Cos und Tangens verschiedener Winkel im Bogenmaß mit Hilfe von berechnen sin ($ angle), cos ($ angle), und Tan ($ Winkel). Sie kommen alle zurück schweben Werte, und das Winkelmaß, das an sie übergeben wird, ist im Bogenmaß.

Das bedeutet, wenn Sie einfach berechnen tan (45), Sie erhalten keine 1 als Ausgabe, da Sie tatsächlich den Tangenswert bei 45 Radiant berechnen, was etwa 2,578 Grad beträgt. Glücklicherweise hat PHP zwei sehr nützliche Funktionen zum Konvertieren von Radianten in Grad und umgekehrt. Diese Funktionen sind rad2deg () und deg2rad (). Wenn Sie also tatsächlich den Wert des Tangens von 45 Grad berechnen möchten, müssen Sie schreiben tan (deg2rad (45)).

 Es ist bemerkenswert, dass es keine direkte PHP-Funktion gibt, um den Wert von zu berechnen cosec (), sec (), oder Kinderbett(). Diese Werte sind jedoch nur Kehrwerte von Sünde(), cos (), und bräunen(), So können Sie ihre Werte immer noch indirekt berechnen.

Sie können auch die Umkehrung durchführen und den Winkel berechnen, bei dem ein trigonometrischer Winkel einen bestimmten Wert hat. Diese Funktionen werden aufgerufen wie in(), acos (), und eine Lohe(). Dabei ist zu beachten, dass die Werte von sin und cos in keinem Winkel den Bereich von -1 bis 1 überschreiten können. Das bedeutet, dass wie in() und acos () kann nur Werte im Bereich von -1 bis 1 als gültige Argumente akzeptieren. Ein Wert außerhalb dieses Bereichs gibt Ihnen NaN.

Bei der Trigonometrie gibt es viele Anwendungen, wie die Bestimmung der Flugbahn eines Projektils oder der Höhen und Entfernungen verschiedener Objekte. Daher ist der Zugriff auf diese Funktionen definitiv hilfreich, wenn Sie Code schreiben, der diese Situationen simuliert.

Diese Funktionen sind auch sehr hilfreich, wenn Sie verschiedene Elemente mit Radial- und Winkelwerten zeichnen möchten. Angenommen, Sie möchten ein Muster aus Kreisen in einem gleichmäßigen Abstand um einen größeren Kreis zeichnen. Wenn Sie das PHP-GD-Shapes-Tutorial zu Envato Tuts + gelesen haben, denken Sie wahrscheinlich daran, dass beim Zeichnen von Formen Koordinaten in Form von X- und Y-Koordinaten übergeben werden müssen. Mit Polarkoordinaten ist das Zeichnen von kreisförmigen Mustern jedoch einfacher.

Wenn Sie diese trigonometrischen Funktionen in diesem Fall verwenden, können Sie die gewünschten Zahlen mit zeichnen Sünde() und cos () Polarkoordinaten in kartesische Form umwandeln. Hier ist ein Beispiel:

Das folgende Bild zeigt das Endergebnis des obigen PHP-Codes.

Exponentielle und logarithmische Funktionen

PHP hat auch einige exponentielle und logarithmische Funktionen. Das exp ($ value) Funktion gibt die Konstante zurück e zur Kraft des Schwimmers erhoben $ wert. In ähnlicher Weise können Sie den Logarithmus einer gegebenen Zahl zu jeder Basis mithilfe von berechnen log ($ arg, $ base) Funktion. Wenn die $ base weggelassen wird, wird der Logarithmus anhand der natürlichen Basis berechnet e. Wenn Sie den Logarithmus einer Zahl zur Basis 10 berechnen möchten, können Sie einfach die Funktion verwenden log10 ($ arg).

Eine weitere Funktion, die Sie möglicherweise nützlich finden, ist pow ($ base, $ exp), die zurückkehrt $ base zur Macht von erhoben $ exp. Einige von Ihnen möchten vielleicht die ** Operator. Der Ausdruck $ a ** $ b gibt das gleiche Ergebnis wie pow ($ a, $ b). In bestimmten Situationen kann es jedoch zu falschen Ergebnissen kommen $ a ** $ b. Zum Beispiel, -1 ** 0,5 werde dir geben -1, was falsch ist. Berechnen Sie den gleichen Ausdruck mit pow (-1, 0,5) gibt den korrekten Wert, NaN.

Andere nützliche mathematische Funktionen

Rundungszahlen

Es gibt auch viele andere wichtige mathematische Funktionen. Sie können Brüche oder Dezimalzahlen mit der gerundeten Zahl auf die nächste Ganzzahl runden ceil (float $ value) Funktion. Dadurch werden sowohl 2.1 als auch 2.9 in 3 konvertiert. Ebenso können Sie Brüche oder Dezimalzahlen mit der nächsten Ganzzahl auf die nächste Ganzzahl runden floor (float $ value) Funktion. Es ändert sich sowohl 2.1 als auch 2.9 zu 2.

Diese Funktionen sind gut geeignet, um die Ergebnisse verschiedener Berechnungen leicht aufzufrischen. Nehmen wir an, Sie müssen wissen, wie viele Personen eine Halle je nach Fläche unterbringen kann. Ihre endgültige Antwort nach der Division ist höchstwahrscheinlich eine Dezimalzahl. Sie können jedoch keine Personen in Bruchteile unterteilen. Die richtige Antwort wäre also der Bodenwert des berechneten Werts.

Oft möchten Sie eine Zahl auf die nächste Ganzzahl auf- oder abrunden. Beispielsweise möchten Sie vielleicht 2.1 in 2, aber in 2.9 in 3 ändern rund ($ value, $ precision, $ mode) Funktion. Das $ Präzision Parameter bestimmt die Anzahl der Dezimalstellen, auf die gerundet werden soll. Der Standardwert 0 gibt einfach Ganzzahlen zurück. Der dritte $ -Modus Mit dem Parameter wird festgelegt, was passiert, wenn die Zahl, die Sie runden möchten, genau in der Mitte liegt. Sie können damit festlegen, ob 3.5 in 3 oder 4 geändert werden soll.

Minimum und Maximum

PHP hat auch zwei Funktionen aufgerufen min ($ -Werte) und max ($ -Werte) zur Ermittlung der niedrigsten und höchsten Werte in einer Menge oder einem Array von Zahlen. Diese Funktionen können verschiedene Arten von Parametern akzeptieren, z. B. zwei Arrays und eine Zeichenfolge. Sie sollten sich die Dokumentation ansehen, um zu sehen, wie sie miteinander verglichen werden.

Integer Division

Sie können auch eine Ganzzahldivision in PHP ausführen, indem Sie die Intdiv ($ Dividende, $ Divisor) Funktion. In diesem Fall wird nur der integrale Teil des Quotienten nach einer Division zurückgegeben. Ebenso können Sie den Rest oder das Modulo nach der Division von zwei Argumenten mit der fmod ($ dividende, $ divisor) Funktion. Der zurückgegebene Wert ist immer kleiner als der $ divisor in der Größenordnung.

Es gibt einige andere nützliche Funktionen wie is_nan ($ value), is_finite ($ value) und is_infinite ($ val) kann verwendet werden, um zu bestimmen, ob der Wert eine Zahl ist und, wenn es sich um eine Zahl handelt, ob es sich um eine endliche oder eine unbegrenzte Zahl handelt. Denken Sie daran, dass PHP jeden Wert für unendlich hält, der zu groß für einen Float ist. So is_finite () wird zurückkehren wahr für 100 Fakultät aber falsch für 1000 Fakultät.

Zufallszahlen in PHP generieren

Zufallszahlen erweisen sich in verschiedenen Situationen als sehr nützlich. Sie können sie verwenden, um "zufällige" Daten für Ihre Anwendung zu generieren oder um gegnerische Instanzen in Spielen usw. zu erzeugen. Es ist sehr wichtig zu bedenken, dass keine der in diesem Abschnitt beschriebenen Funktionen kryptografisch sichere Zufallszahlen generiert. Diese Funktionen sind nur für Situationen gedacht, in denen Sicherheit kein Thema ist, wie z. B. das Anzeigen von Begrüßungstexten für wiederholte Besucher oder das Generieren von statistischen Daten.

Die Funktionen rand ($ min, $ max) und mt_rand ($ min, $ max) kann positive Zufallszahlen zwischen den angegebenen Werten erzeugen, einschließlich der $ min und $ max Wert. Wenn die Funktionen ohne Parameter aufgerufen werden, erzeugen sie Zufallszahlen zwischen 0 und getrandmax (). Sie können Echo der Wert von getrandmax () So sehen Sie die maximal mögliche Zufallszahl, die diese Funktionen auf Ihrer Plattform generieren können.

Die Funktion mt_rand () ist 4 mal schneller als rand () und gibt false zurück, wenn $ max ist weniger als $ min. Ab PHP 7.1.0, rand () ist eigentlich ein Alias ​​von gemacht worden mt_rand (). Der einzige Unterschied ist das rand () noch immer keine Fehlermeldung, wenn $ max ist weniger als $ min Rückwärtskompatibilität aufrechterhalten.

Hier ist eine Schleife, um eine Million Mal zufällige Werte zwischen 0 und 100 zu erzeugen. Wie Sie sehen, werden die Werte 0, 50 und 100 mit leichten Schwankungen etwa 10.000 Mal generiert.

Beide Funktionen haben auch ihre eigenen Seederfunktionen srand () und mt_srand () einen Samen für die Zufallszahlengeneratoren bereitstellen. Sie sollten nur bedenken, dass Sie nur anrufen srand () und mt_srand () einmal in deinem Programm. Rufe sie vor jedem Anruf an rand () und mt_rand () erhalten Sie jedes Mal die gleichen "zufälligen" Zahlen.

Abschließende Gedanken

PHP verfügt über zahlreiche integrierte Funktionen, die alle Ihre täglichen Rechenanforderungen erfüllen sollten. Mit diesen Funktionen können Sie etwas kompliziertere Berechnungen wie GCD, LCM und Fakultäten selbst durchführen.

Es gibt nur ein paar Dinge, die Sie bei der Verwendung dieser Funktionen beachten sollten. Zum Beispiel der Wert, der von Funktionen wie zurückgegeben wird Fußboden() und ceiling () ist eine ganze Zahl, aber es ist immer noch ein Float. Ebenso erwarten alle trigonometrischen Funktionen, dass ihre Winkel im Bogenmaß angegeben werden. Sie erhalten falsche Ergebnisse, wenn Sie einen Winkelwert übergeben, den Sie als Gradmaß behandeln möchten. Stellen Sie daher sicher, dass Sie den Rückgabewert und die erwarteten Argumente all dieser Funktionen in der Dokumentation überprüfen.