異なる寸法 (つまり、4x6 と 10x15) のグリッドがある場合、その特定のセルの近くにあるセルをどのように見つけますか? セル 15 にいると言って、10x10 グリッドの場合、セル 15 にはセル 5、14、16、および 25 が隣接セルとして含まれていると言えますか? それとも、グリッドが多くの異なる次元を持つことができるという事実は、その場でそれを把握できる C++ または Java の関数を持つことを不可能にしますか?
1 に答える
2
アルゴリズムを構築しましょう:
ディメンションm
行*n
列を指定すると、次の例のグリッドがあります。この例では、m
は 2 で、n
は 3 です。
+-----+
|0|1|2|
+-----+
|3|4|5|
+-----+
a
これで、縦位置と横位置のセルの数が であることがわかりb
ますam+b
。
が分かっているのでm
、モジュロを使って a と b を求めましょう。
b はより小さいので(プログラミングで最初の行と列に0 を使用しているため)、gridsquare の位置はcolumnでm
あると言えます。row は、整数に切り捨てることを意味します。z
z%m
floor(z/m)
floor(
次に、m と n に 1 を足したり引いたりして 4 つの隣接する正方形を取得し、am+b
前に示したようにそれらの数値 ID を計算します。
于 2013-06-30T16:46:05.197 に答える