0

Javaでメソッドを使用していますが、C#でもメソッドが必要です。これは、intの行列が推移的であるかどうかを判断するために使用されます。

static boolean isTransitive(boolean[][] matrix) {
    for (int i = 0; i < matrix.length; i++) {
        for (int j = 0; j < matrix.length; j++) {
            if (matrix[i][j]) {
                for (int k = 0; k < matrix.length; k++) {
                    if (matrix[j][k] && !matrix[i][k]) {
                        return false;
                    }
                }
            }
        }
    }
    return true;
}

私の主な問題は、C#のmatrix [i][j]が何を意味するのかわからないということです。

コードがこの4x4のint配列で動作することは可能ですか?:

transNumbers[0, 0] = 0;
transNumbers[0, 1] = 1;
transNumbers[0, 2] = 0;
transNumbers[0, 3] = 0;
transNumbers[1, 0] = 1;
transNumbers[1, 1] = 0;
transNumbers[1, 2] = 1;
transNumbers[1, 3] = 0;
transNumbers[2, 0] = 0;
transNumbers[2, 1] = 0;
transNumbers[2, 2] = 0;
transNumbers[2, 3] = 1;
transNumbers[3, 0] = 0;
transNumbers[3, 1] = 0;
transNumbers[3, 2] = 0;
transNumbers[3, 3] = 0;
4

5 に答える 5

0

matrix[i][j] は、C# でも Java とまったく同じことを意味します。

とはいえ、あなたのマトリックスは、あなたが説明したようにintではなく、ブール値のマトリックスのようです!

于 2012-06-03T14:24:59.697 に答える
0

多次元配列は、次元ごとに で定義された C# です。

例えば

int[,] test = new int[list1.Count, list2.Count]

http://bytes.com/topic/c-sharp/answers/531671-array-matrix-definition

于 2012-06-03T14:26:31.707 に答える
0

booleanマトリックスを使用しているためif (matrix[i][j])、コードでは、booleanその特定のインデックスの要素[i][j]が true かどうかを意味します。

より簡単に分割するには:

配列を考えてみましょう:

[1][2][3]

[4][5][6]

[7][8][9]

すべての要素は、そのインデックスでアクセスできます。したがって、要素 5 のインデックスが[1][1].(インデックスは 1 ではなく 0 から始まることに注意してください) とします。

iまた、あなたの場合はとのような変数を使用して、インデックスを参照する配列を反復処理できますj

于 2012-06-03T14:26:49.990 に答える
0

[][] の代わりに [I,j] のように使用します。コードの残りの部分は問題ありません。

于 2012-06-03T14:29:17.487 に答える
0

コードを C# に変換するにはbooleanbool. 他のすべては、2 つの言語で同じです。

ただし、C# には、実装したい追加機能が用意されています。その一つが、実多次元配列の存在です。これらは単一のオブジェクトで行列の複数の次元を実装しますが、[][]実際の表記はジャグ配列、つまり配列の配列です。

于 2012-06-03T15:35:48.433 に答える