我有一个20x20的矩阵,其中有0个值。
矩阵[10,10]选择值:1。
距离是:3。
如何在C#中使用切比雪夫距离算法更改邻居值(距离:3)?
算法可以检查,如果选择的值1不在矩阵的中心(例如:矩阵[1,1] = 1),则不会超出矩阵索引范围。
我在维基百科上读过chebysev距离,但我不懂数学公式。
答案 0 :(得分:0)
如果我理解你的问题是正确的,你想要将某个参考点r
的半径(x, y)
内的所有条目更改为定义的值(其中半径以切比雪夫指标衡量)。您可以通过计算轴上的适当范围来完成此操作:
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.Rows
,matrix.Columns
和元素访问matrix[][]
仅用于示例。您必须使用适当的数据结构方法。