Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich einen PHP-Rechner mit dem Shunting Yard-Algorithmus erstellen?

Wie kann ich einen PHP-Rechner mit dem Shunting Yard-Algorithmus erstellen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-06 08:48:11655Durchsuche

How Can I Build a PHP Calculator Using the Shunting Yard Algorithm?

So erstellen Sie einen Rechner mit PHP

Problem:

Sie möchten einen PHP-Rechner entwickeln, der einfache Algebra auswertet Von Benutzern eingegebene Ausdrücke in Standardnotation, die den Bewertungsprozess anzeigen. Die Herausforderung besteht darin, den Wert des Ausdrucks effizient zu berechnen.

Antwort:

Erwägen Sie die Verwendung des Shunting Yard-Algorithmus wegen seiner Einfachheit und Effizienz bei der Auswertung algebraischer Ausdrücke.

Implementierung des Rangierbahnhof-Algorithmus

Ausdruck Definitionen:

Erstellen Sie Klassen, um verschiedene Elemente des Ausdrucks darzustellen, wie etwa Klammern, Zahlen, Operatoren usw.:

class Parenthesis extends TerminalExpression { ... }
class Number extends TerminalExpression { ... }
class Addition extends Operator { ... }
class Subtraction extends Operator { ... }
class Multiplication extends Operator { ... }
class Division extends Operator { ... }
class Power extends Operator { ... }

Stapelimplementierung:

class Stack {

    protected $data = array();

    // ... Methods for pushing, popping, and peeking from the stack ...
        
}

Vollstrecker Klasse:

Die Executor-Klasse analysiert den Ausdruck mithilfe des Shunting Yard-Algorithmus und wertet ihn aus:

class Math {

    // ... Fields and methods for parsing, running, and evaluating the expression ...
        
}

Beispiel:

Hier ist ein Beispiel für die Verwendung des Rechners:

$math = new Math();

$answer = $math->evaluate('(2 + 3) * 4');
var_dump($answer);
// int(20)

$answer = $math->evaluate('1 + 2 * ((3 + 4) * 5 + 6)');
var_dump($answer);
// int(83)

Dieses Beispiel behandelt Gruppierung und Operator Vorrang. Sie können die Implementierung jedoch an Ihre spezifischen Anforderungen anpassen.

Das obige ist der detaillierte Inhalt vonWie kann ich einen PHP-Rechner mit dem Shunting Yard-Algorithmus erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn