Algoritmo per il posizionamento della matrice

0

Diciamo che ho una matrice mxn originale come questa:

1 2 3 4
5 6 7 8

Ai fini del mio programma, quindi concatenare le righe in questa nuova matrice monodimensionale:

1 2 3 4 5 6 7 8

Conosco la dimensione mxn della matrice originale. La mia domanda è, data la posizione di un valore nella nuova matrice, ho bisogno di un algoritmo per trovare la sua posizione mxn nella matrice originale.

Ad esempio: utilizzando le matrici precedenti, 8 avrebbe una posizione originale di 2x4, 3 avrebbe una posizione originale di 1x3 e così via.

Questo è per un programma java che sto scrivendo, ho provato ad usare la divisione e il modulo e ho giocato con esso, ma non ho potuto trovare un buon algoritmo che funzioni per tutti i casi.

    
posta gptt916 18.05.2016 - 04:39
fonte

1 risposta

1

Se A è la matrice bidimensionale originale, B è la nuova matrice monodimensionale, m & n sono rispettivamente l'altezza e la larghezza di B, quindi data la posizione p dell'elemento a in A, le nuove coordinate [x,y] all'interno di B (dati gli indici che sono a base uno) è

x = (p - 1) / n + 1
y = n + 1 - (p % n) 

Con indici a base zero, questo diventa più semplice, poiché non devi più regolare per l'1 offset.

x = p / n
y = n - p % n
    
risposta data 18.05.2016 - 04:50
fonte

Leggi altre domande sui tag