¿Cómo determinar matemáticamente la fila, la columna y el subd cuadrado de la célula en la matriz NXN donde N es un cuadrado perfecto?
-
29-09-2020 - |
Solución
Deja que las células unidimensionales sean $ c_1, c_2, \ cdots, c_ {n ^ 2} $ .
Asumir que la celda superior izquierda está en $ (1,1) $ , es decir, la primera fila y la primera columna. Supongamos que la celda superior derecha está en $ (1, n) $ , es decir, la primera fila y el $ n $ < / span> en columna. Luego, el $ i $ Celular, $ c_i $ está en $ (i / n + 1, i \% n +1) $ . AQUÍ $ i / n $ es el división entero y $ i \% n $ es la operación de Modulo en cualquier lenguaje de programación popular. Por ejemplo, permita que $ n= 9 $ . Luego, el $ 42 $ Celular, $ c_ {42} $ está en $ (42/9 + 1, 42 \% 9 + 1)= (5, 7) $ .
Supongamos que los subsquaros están alineados en el mismo orden que las células, para que tengamos subsquares $ S1, S2, \ CDOTS, SN $ . Considere cada subsija como una especie de "célula grande". Para que tengamos las siguientes coordenadas para subsquares.
Tenga en cuenta que $ c_i $ pertenece a la $ (i / n + 1) $ -th Subsquare, es decir, Subsquare $ S (I / N + 1) $ . Por ejemplo, $ C_ {37} $ pertenece a la $ 5 $ -ths subsquare, es decir, subsquare < Span Class="Math-contenedor"> $ s5 $ . Estamos en la misma situación que antes, pero con el $ (i / n + 1) $ -th "Celda grande" y una $ \ sqrt n \ times \ sqrt n $ de" células grandes ". De manera similar, vemos que el $ (i / n + 1) $ , se encuentra en $ ((i / n +1) / \ SQRT N + 1, (i / N + 1) \% \ sqrt n + 1) $ , utilizando las coordenadas para subsquares.
Supongamos que queremos atravesar el subsquare en $ (j, k) $ (donde $ (j, k) $ está en las coordenadas para subsquaris).
- La primera celda (la celda superior izquierda) de ese subsistaz es $ c _ {(j-1) \ sqrt n \ cdot n + (k-1) \ sqrt n +1} $
- La primera celda de la segunda fila de ese subsuelo es $ c _ {(j-1) \ sqrt n \ cdot n + (k-1) \ sqrt n +1 + n} $
- $ \ cdots $
- La primera celda de la última fila de ese subsuelo es $ c _ {(j-1) \ sqrt n \ cdot n + (k-1) \ sqrt n + 1 + (\ sqrt n -1) n} $
para que podamos atravesar todas las células en ese subsuelo por el siguiente pseudocode.
$ \ quad $ para $ fila $ en $ 1, 2, \ CDOTS, \ SQRT N $
$ \ quad \ quad $ para $ columna $ en $ 1 , 2, \ cdots, \ sqrt n $
$ \ quad \ quad \ quad $ Visite la celda en $ fila $ -th fila y $ columna $ -th columna del subsquare en $ (j, k) $ , que es $ C _ {(J-1) \ SQRT N \ CDOT N + (K-1) \ SQRT N + (fila -1) n + columna} $
Nota " $ fila $ -th fila y $ columna $ « se refieren a la columna " Células en ese subsisto.
Por ejemplo, atravesaremos las células en Subsquare (2,3) en el siguiente orden.
- Células en su primera fila, $ C_ {34} $ , $ c_ {35} $ , $ c_ {36} $ ,
- células en su segunda fila, $ c_ {43} $ , $ C_ {44} $ , $ c_ {45} $ ,
- células en su tercera fila, $ c_ {52} $ , $ C_ {53} $ , $ c_ {54} $ .