1

両方が同じかどうかを識別するために、特定の論理式を Java の別の論理式と比較する必要があります。たとえば、式 as((a&b)&(c|d)&(e&f))と other as を考えてみましょう((a&e)&(c|d)&(b&f))。どちらも同等です。考慮してください(a&(f&(b&e))&(c|d)):これも同等です。さらに、この式は入れ子にすることができます。これを接頭辞表記に変換しようと思ったのですが、適切な方法が見つかりません。Expressions は、式タイプが AND/OR であり、その子式 ex の配列を持つ再帰的なクラス オブジェクトです。上記の最初の式の場合:

{
    type: AND,
    expressions: [{
        type: AND,
        expressions: [{
            type: SIMPLE,
            expression: [a]       <-- this could also be nested if type would have been logical
        }, {
            type: SIMPLE,
            expression: [b]
        }]
    }, {
        type: OR,
        expressions: [{
            type: SIMPLE,
            expression: [c]
        }, {
            type: SIMPLE,
            expression: [d]
        }]
    }, {
        type: AND,
        expressions: [{
            type: SIMPLE,
            expression: [e]
        }, {
            type: SIMPLE,
            expression: [f]
        }]
    }]
}

式を単純化して比較する方法はありますか?

4

1 に答える 1