Salve sono nuovo del forum e vorrei proporvi il mio quesito sul seguente esercizio;
Si consideri un array 2D nxn, con n=32, in cui ogni casella può essere bianca (rappresentata da uno spazio ‘ ‘) o nera (rappresentata da una ’X’). All’inizio l’array è costituito solo da caselle nere. L’algoritmo esamina m=6 volte la scacchiera. Durante ogni passo aggiorna lo stato di tutte le caselle usando un criterio di suddivisione nel seguente modo: al primo passo l’array 2D viene visto come costituito da 4 blocchi, ognuno di 16x16 caselle; al secondo passo, ogni blocco di 16x16 è visto come costituito da 4 blocchi di 8x8 caselle; e così via. La regola di suddivisione è la seguente: quando un blocco ‘grande’ nero viene suddiviso in 4 blocchi ‘più piccoli’ allora i blocchi ‘piccoli’ diagonali vengono marcati con ‘D’ e il blocco piccolo in alto a destra diventa bianco o marchiato con ‘A’; quando un blocco ‘grande’ bianco viene suddiviso in 4 blocchi ‘più piccoli’ allora tutti i blocchi ‘piccoli’ rimangono bianchi. L’algoritmo visualizza tutto l’array 2D al temine di ogni passo. Sviluppare due versioni dell’algoritmo, una iterativa e l’altra ricorsiva.
Per quanto riguarda la versione iterativa non ci sono stati particolari problemi,non lo stesso per la ricorsiva. Chi mi può dare una mano? Grazie mille in anticipo!
Si consideri un array 2D nxn, con n=32, in cui ogni casella può essere bianca (rappresentata da uno spazio ‘ ‘) o nera (rappresentata da una ’X’). All’inizio l’array è costituito solo da caselle nere. L’algoritmo esamina m=6 volte la scacchiera. Durante ogni passo aggiorna lo stato di tutte le caselle usando un criterio di suddivisione nel seguente modo: al primo passo l’array 2D viene visto come costituito da 4 blocchi, ognuno di 16x16 caselle; al secondo passo, ogni blocco di 16x16 è visto come costituito da 4 blocchi di 8x8 caselle; e così via. La regola di suddivisione è la seguente: quando un blocco ‘grande’ nero viene suddiviso in 4 blocchi ‘più piccoli’ allora i blocchi ‘piccoli’ diagonali vengono marcati con ‘D’ e il blocco piccolo in alto a destra diventa bianco o marchiato con ‘A’; quando un blocco ‘grande’ bianco viene suddiviso in 4 blocchi ‘più piccoli’ allora tutti i blocchi ‘piccoli’ rimangono bianchi. L’algoritmo visualizza tutto l’array 2D al temine di ogni passo. Sviluppare due versioni dell’algoritmo, una iterativa e l’altra ricorsiva.
Per quanto riguarda la versione iterativa non ci sono stati particolari problemi,non lo stesso per la ricorsiva. Chi mi può dare una mano? Grazie mille in anticipo!