Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347

    [Java] é possibile creare matrici di matrici?(senza ricorrere ad oggetti)

    come da titolo... il motivo comunque è puramente per facilità di scrittura di una scansione particolare di una matrice 9x9: l'avanzamento da una cella alla prossima segue la "logica dei settori", ossia le sottomatrici 3x3... da <0,0> ci si sposta a <0,1> quindi a <0,2> quindi a <1,0>, poi a <1,1> e dopo a <1,2>, seguono <2,0>, <2,1> e <2,2> dopo di che si passa a <0,3> che è la prima cella del secondo settore etc.
    Ovviamente potendo fare una cosa del genere, la scansione sarebbe naturale...

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Credo che si possa risolvere con 4 cicli annidati (fa schifo, lo so), ma almeno usi la tua matrice di partenza senza doverla prima spezzettare (a meno che non ci sia una ragione per spezzettarla comunque, oppure non ti arrivi già spezzettata):

    codice:
    char[][] a = new char[][]{
                {'a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c'},
                {'a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c'},
                {'a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c'},
                {'d', 'd', 'd', 'e', 'e', 'e', 'f', 'f', 'f'},
                {'d', 'd', 'd', 'e', 'e', 'e', 'f', 'f', 'f'},
                {'d', 'd', 'd', 'e', 'e', 'e', 'f', 'f', 'f'},
                {'g', 'g', 'g', 'h', 'h', 'h', 'i', 'i', 'i'},
                {'g', 'g', 'g', 'h', 'h', 'h', 'i', 'i', 'i'},
                {'g', 'g', 'g', 'h', 'h', 'h', 'i', 'i', 'i'}
            };
    
            for (int i = 0; i < 3; i++) {
                for (int j = 0; j < 3 ; j++) {
                    for (int k=0; k < 3; k++) {
                        for (int h=0; h < 3; h++) {
                            System.out.print(a[i*3+k][j*3+h]+" ");
                        }
                        System.out.println();
                    }
                    System.out.println();
                }
            }
    dovrebbe uscirti
    codice:
    a a a 
    a a a 
    a a a 
    
    b b b 
    b b b 
    b b b 
    
    c c c 
    c c c 
    c c c 
    
    d d d 
    d d d 
    d d d 
    
    e e e 
    e e e 
    e e e 
    
    f f f 
    f f f 
    f f f 
    
    g g g 
    g g g 
    g g g 
    
    h h h 
    h h h 
    h h h 
    
    i i i 
    i i i 
    i i i
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347
    scusami ma non ho capito bene la tua soluzione XD

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    prova a seguire con carta e penna
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347
    ah ok ho capito quello che hai scritto! XD il problema mio è un po diverso però, perchè non è tanto la scansione della matrice ma il suo riempimento anche, mi spiego meglio: ho un progetto per l'università che devo consegnare per l'esame e praticamente devo creare un algoritmo ricorsivo con la tecnica del backtracking che risolva una matrice(sudoku) con dei valori all'interno preimpostati... il problema è questa scansione per "settori" ora puoi capire perchè non posso usare il tuo algoritmo iterativo...

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.