У меня есть 2D-массив (StartingArray
) NxN (например, 3x3). Я хотел бы мои 2 другие массивы (LRotateArray
и RRotateArray
) быть StartingArray
повернутый на 45 градусов влево и вправо (в каждой строке в LRotateArray
и RRotateArray
являются диагоналями в StartingArray
):Входной сигнал диагональной матрицы
StartingArray:
1 2 3
4 5 6
7 8 9
LRotateArray:
1
4 2
7 5 3
8 6
9
RRotateArray:
7
4 8
1 5 9
2 6
3
Я хочу, чтобы редактировать LRotateArray
и RRotateArray
время получение ввода StartingArray
.
Я нашел формулу, позволяющую мне генерировать LRotateArray
:
if StartingArray[i][j]=k then L_j=i+j
if j>(N-1-i) then L_i=N-i-j else L_i=i
LRotateArray[L_i][L_j]=k
Есть ли простой способ превратить LRotateArray
в RRotateArray
, или я должен найти другую формулу, как один из приведенных выше?
Получение RRotateArray из StartArray намного проще, чем получение его из LRotateArray. Поэтому я предлагаю вам найти другую формулу для этого. Однако в отношении вашей текущей формулы я понятия не имею, как она будет работать, и некоторые из них (L_i = N = i-j) просто не имеют никакого смысла. –