配列全体を2Dから1Dに変換する場合とその逆の場合については、には反復処理を必要としない数式があるかどうか疑問です。ソートされた2D配列の整数の組のインデックス位置を返します。2D配列の座標ペアの1D配列の整数インデックスを返します
私の "グリッド"は常に正方形で、任意のサイズ(この例では3x3)であり、私は人間のフレンドリーな値のブロックを取得しており、そこから私が "True 1Dこのような指標」:
"Human-friendly" coordinates| Java 2D Indices | True 1D indices
[1,1],[1,2],[1,3], ==> [0,0],[0,1],[0,2], ==> 0 , 1 , 2
[2,1],[2,2],[2,3], ==> [1,0],[1,1],[1,2], ==> 3 , 4 , 5
[3,1],[3,2],[3,3], ==> [2,0],[2,1],[2,2], ==> 6 , 7 , 8
は、だから私は、私に次のような結果を与えるために私のクラスのメソッドが必要になります。
私は1,1を入力して、バック0を取得し、 私は3,2を入力して取り戻します7、 2,3を入力して戻って5、 など。
私は、前回の行のインデックスの二乗に座標を追加するようなことを試みる半ダースの式を使いました。グリッド内のすべてのセルについて決して正しい結果を得ることはできません。何か特別な演算子や数学関数がありますか?
ありがとうございました。
私はあなたがそれを持っていると思います。したがって、最初の定数は、人間にやさしい形式の合計行数です。末尾と括弧内の1を引くことは、基本的にjavaの行、列の値を使用することと同じです。だから私が(N行* Java行)+ Java_columnをテストすると、私は9つのセルすべてに対して正しい答えを得ます。あなたがこのことをどのように知っていたか尋ねてもいいですかこれはアレイの平坦化の一般的な式ですか?それは適切な名前を持っていますか?本当にありがとう。 – JacobIRR
いいえ、私は個々に配列の異なる値の異なる数式をフレームにしようとし、最後にこの数式で来ました。この式に適切な名前があるかどうかわかりません。 –