taxicab metricと呼ばれるメトリックに基づくアルゴリズムを試していました。次に、私の目的は簡単な例を作成することでした。単純な 3x3 マトリックスがあり、最初の位置に 1 があります。それから、次のように、他の位置の距離を計算します。
1 2 3
2 3 4
3 4 5
そのために、次のコードを作成しました。
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int matrix[3][3]={1,0,0,0,0,0,0,0,0}, i, j;
for ( i=0; i<3; i++)
{
for( j=0; j<3; j++)
matrix[i][j]= abs(i-1)+ abs (j-1)+1;//taxicab algorithm
printf("%d ",matrix[i][j]);//prints the matrix
printf("\n");
}
return 0;
}
ただし、出力は
0
0
3
なぜこれが起こっているのか、私にはわかりません。なぜ最初の列だけを印刷するのですか??? では、なぜ 1 が 0 になったのでしょうか。