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

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

Barbara Streisand
Barbara Streisandオリジナル
2024-12-08 17:53:11237ブラウズ

How to Build a PHP Calculator Using the Shunting Yard Algorithm?

操車場アルゴリズムを使用して PHP で電卓を構築する方法

概要:

を処理できる電卓の作成通常の表記法で単純な代数式を入力すると、PHP にはないため、困難が生じます。式解析のための組み込み機能。これに対処するために、強力で効率的な操車場アルゴリズムを活用できます。

実装:

  1. トークン化: 入力文字列を分割します。単語境界とトークン境界 (数字、括弧、
  2. 操車場アルゴリズム: スタックを使用してトークンを逆ポーランド記法 (RPN) に変換します。演算子は、優先順位と結合性に基づいてプッシュおよびポップされ、適切な順序が確保されます。
  3. 評価: 演算子をポップして評価することにより、RPN スタックを処理します。結果をスタックにプッシュします。
  4. 演算子と括弧の処理: 演算子と括弧をカプセル化するクラスを実装し、スタック上で操作して特殊なケースを処理できるようにします。

例コード:

操車場アルゴリズムを実装するには、さまざまなコンポーネントを表す一連のクラスと関数が必要です。概要は次のとおりです:

class TerminalExpression {
    // Represents operands and operators
}

class Number extends TerminalExpression {
    // Represents numeric values
}

class Operator extends TerminalExpression {
    // Represents arithmetic operators (+, -, *, /, ^)
}

class Parenthesis extends TerminalExpression {
    // Represents parentheses ((), used for grouping)
}

class Stack {
    // A simple stack data structure
}

class Math {
    // Contains the logic for evaluation and parsing
}

使用例:

実装すると、次のように計算機を使用できます:

$math = new Math();
$result = $math->evaluate("(2 + 3) * 4");
echo $result; // Output: 20

操車場のメリットアルゴリズム:

  • 代数式の効率的かつ正確な解析
  • 演算子の優先順位と結合性をサポート
  • コストのかかる文字列操作や複雑な正規表現の必要性を回避
  • 括弧や括弧を含む複雑な式を処理します。ネストされた計算
  • より複雑な数学演算をサポートするように拡張できます

Shanging Yard アルゴリズムを利用することで、単純な代数式を堅牢かつパフォーマンスの高い方法で評価できる PHP 計算機を作成できます。マナー

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

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