2016-11-12 11 views
0

私は0の値を持つ20x20の行列を持っています。行列のチェビシェフ距離を使って値を変更する

行列[10,10]が選択されている値:変更隣接値行う方法3.

1.

Picture1 full size image

距離である(距離:3)を使用してC#のチェビシェフ距離アルゴリズム?

Picture2 full size image

アルゴリズムは、選択された値1は、マトリックスの中央にない場合、確認することができる(例:[1,1]マトリックス= 1)、次いで、行列インデックス範囲外ではないであろう。

私はウィキペディアでchebysev distanceを読みましたが、私は数式を理解していません。

+0

(Chebyshev、非常に(少なくとも)で)Chebyshevの不平等がここで必要であると私は見ることができません。 – greybeard

答えて

0

質問が正しく理解されている場合は、参照点(x, y)の半径内のすべてのエントリを、定義された値(Chebyshevメトリックで測定される)に変更したいと考えています。

var lowerX = Math.Max(0, x - radius); 
var upperX = Math.Min(matrix.Columns - 1, x + radius); 
var lowerY = Math.Max(0, y - radius); 
var upperY = Math.Min(matrix.Rows - 1, y + radius); 
for(int i = lowerX; i <= upperX; ++i) 
    for(int j = lowerY; j <= upperY; ++j) 
     matrix[i][j] = value; 

方法matrix.Rowsmatrix.Columns、および要素アクセスmatrix[][]はちょうど例示使用されている:あなたは、軸上の適切な範囲を計算することにより、これを行うことができます。データ構造の適切なメソッドを使用する必要があります。

+0

ありがとう、そのうまくいきました! – xBLADEx

関連する問題