3

クラスの 2 次元データ構造を実装しています。私が望むアプローチは、オブジェクトの「NxN」配列です。

そう、

    Cell[][] dataStructure = new Cell[N][N];

私の現在の問題は、再帰に非常に慣れていないことです。各セルは、その出力を作成するために、その左側のセルの出力とその上のセルに依存しています。

2 次元構造の例と出力が次のセルに流れ込む方法

例:

標準の X、Y 方向を想定すると、セル、Cell[X][Y] に対して getOutputX メソッドを呼び出すことができ、Cell[X-1][Y] に対して getOutputX を、Cell に対して getOutputY を再帰的に呼び出すことができます。 [X][Y-1] 配列の端に到達するまで。この時点で、出力は配列を介して伝播し、セルの目的の出力を返します。

これを書いているうちに理解が深まり、とても親しくなった気がします。役立つ情報やヒントをいただければ幸いです。

私の具体的な質問は、上のセルと目的の出力の左側のセルの両方から必要な入力を取得する getOutput メソッドを作成する方法です。

4

1 に答える 1

2

アルゴリズムは非常に単純です。

int getOutput(x, y) {
    if (x == 0 || y == 0) {
        return hardCodedInput(x, y);
    }
    int leftOutput = getOutput(x - 1, y);
    int topOutput = getOutput(x, y - 1);
    return logicGate(x, y).applyLogic(leftOutput, topOutput);
}
于 2012-12-01T20:08:06.753 に答える