Closed ochaochaocha3 closed 5 years ago
同様の問題を扱っているRuby Quiz #148「Postfix to Infix」の一部を翻訳してみた。 https://gist.github.com/ochaochaocha3/ab0e7b576968453b236b80d88331941f
アルゴリズムは概ね合っていたが、一般に、左結合性(left associativity)と右結合性(right associativity)に基づいて括弧をつけるかどうか決めることができることが分かった。GoBCDiceのコードもこれに合わせて更新したい。
端数処理方法を指定した除算の中置表記の実装で、四則演算の中置表記の実装は完了。まだ評価を実装していないランダム数値取り出しは一旦置いておき、加算ロールの中置表記の確認を行う。それで中置表記の実装は一旦完了とする。
4ea20232a21c0cb7509409a8cfee8655dceb0875 で完了。
中置記法表現を生成する際、演算子の優先順位や可換性を考慮して、括弧をつけるかどうかを決定する。
Rubyによるアルゴリズム実装例: