如何找到螺旋矩阵中任意数字与中心之间的步长



任何人都可以帮助或给出算法来找到从任何数字n到螺旋矩阵中心的步数:

螺旋矩阵可以是任何奇数大小,比如5大小的螺旋矩阵

17    16    15    14    13
18     5     4     3    12
19     6     1     2    11
20     7     8     9    10
21    22    23    24    25

如何从13到中心1的任意数字中找到步数?在本例中,从13到1,步数(仅向左和向右上(为4

这样做:

% given
n = 13;            
A = spiral(5);
[ii,jj] = ind2sub(size(A),find(A == n)); % x,y index of n
[c] = ceil(size(A)/2);                   % index of center
dis = abs(c(1) - ii) + abs(c(2) - jj);   % distance

最新更新