ホームページ >バックエンド開発 >PHPチュートリアル >操車場アルゴリズムを使用して PHP 計算機を構築するにはどうすればよいですか?

操車場アルゴリズムを使用して PHP 計算機を構築するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-06 08:48:11653ブラウズ

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

PHP を使用して電卓を作成する方法

問題:

単純な代数を評価する PHP 電卓を開発したいと考えています。ユーザーが入力した式を標準表記で表示し、評価プロセスを表示します。課題は、式の値を効率的に計算することにあります。

答え:

代数式を評価する際の単純さと効率性のために、操車場アルゴリズムの利用を検討してください。

操車場アルゴリズム実装

式の定義:

括弧、数値、演算子などの式のさまざまな要素を表すクラスを作成します:

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 { ... }

スタック実装:

class Stack {

    protected $data = array();

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

Executor クラス:

Executor クラスは、Shanging Yard アルゴリズムを使用して式を解析し、評価しますit:

class Math {

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

例:

計算機の使用方法の例を次に示します:

$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)

この例では、グループ化と演算子について説明します。優先権。ただし、特定の要件に合わせて実装をカスタマイズできます。

以上が操車場アルゴリズムを使用して PHP 計算機を構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。