非標準形式(NSF)ブール関数を標準形式(SF)に変換するJavaパーサーを作成したいと考えています。 NSFの非標準形式から標準形式をJavaで解析する
例:
A * B + D (A + B) C + A * B (A * B '+ A + B) D
SFにNSFを取得するには、ブラケットを掛ける必要があります。上記の関数からのSFは次のようになります:A*B + D*A*C + D*B*C + A*B*A*B'*D + A*B*A*D + A*B*B*D
私はこれをどのように実装できますか?
1)「標準」(あなたの用語に関係のない)構文解析技術を使用して式を解析し、ブール式になるものを生成:
は、あなたがあなたの目的を達成するための4つのステップを行う必要があり
これらがブール変数の場合、A * B * B * DをA * B * Dに簡略化してはいけませんか? 何を試しましたか?あなたは現在の式を読み込むパーサーを持っていますか、あるいはすでに解析されていますか? – Jim
明らかに、それを解析し、表現を取得し、その表現を変換し、結果を事前に印刷します。もっと具体的なものは何ですか?何を試しましたか?あなたはすでに何を管理しましたか? – delnan
あなたはどんな単純化をすべきですか? *があなたのAND記号で、+があなたのOR記号であるとすると、A * B *(A * B + A + B)はA * Bに減少することに注意してください。 *と+の両方が可換であるため、標準フォームを正規の順序で印刷することができます。 B 'はBとは異なる変数ですか? これは宿題ですか? – Jim