Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di daneel
    Registrato dal
    Oct 2002
    Messaggi
    229

    [Algoritmi] Elencare le posizioni di una matrice

    Ho dichiarato una matrice bidimensionale larga n e alta m. Devo poter accedere, in un unico ciclo, a tutte le posizioni della matrice nel seguente ordine (l'esempio riguarda una matrice di prova di 7x5; quindi la sequenza va da 1, posizione 0.0, a 35, posizione 6.4):


    In questo modo riesco ad arrivare al primo elemento di ogni diagonale (quelli con i numeri in grassetto), e da lì potrei procedere per tutte le altre posizioni della diagonale stessa.
    codice:
    x=0;
    y=0;
    while(x<n && y<m) {
    	print(x);
    	print(y);
    	if(y==m-1) x++;
    	if(x==0) y++;
    }
    Quale potrebbe essere l'algoritmo più efficiente per risolvere in modo completo un problema simile?

  2. #2
    Chiedo scusa ma non ho capito con quale ordine devi accedere agli elemnti della matrice

  3. #3
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Perchè in un unico ciclo?

  4. #4
    Utente di HTML.it L'avatar di daneel
    Registrato dal
    Oct 2002
    Messaggi
    229
    L'ordine è quello indicato nell'immagine sopra dai numeri riportati nelle varie posizioni.
    Con un solo ciclo intendo dire che durante l'elencazione degli indici l'ideale sarebbe poter assegnare la stessa porzione di codice ad ogni coppia di coordinate (per esempio, se scrivessi due cicli, uno per la prima metà della matrice e uno per la seconda, ad ogni iterazione prima dell'uno e poi dell'altro dovrei chiamare una funzione per eseguire le stesse operazioni).

  5. #5
    Utente di HTML.it L'avatar di daneel
    Registrato dal
    Oct 2002
    Messaggi
    229
    up

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.