PDA

View Full Version : Quadrati magici


dartita
28-04-2007, 14:01
Salve, devo risolvere un problema che mi sta facendo impazzire..

in pratica dovrei scrivere un algoritmo Java per il gioco denominato "Quadrato Magico".
Data una matrice n×n, le caselle contengono tutti e soli i numeri interi da 1 a n^2 secondo le seguenti regole: la somma di tutti i valori di una riga è eguale per tutte le righe; la somma di tutti i valori presenti in una colonna è eguale per tutte le colonne; colonne e righe danno la stessa somma.
Data una matrice A n×n, n>=1, i cui valori a(i,j) appartengono all'insieme {0, 1, 2, 3, ..., n^2}.
Si richiede di sostituire tutti gli 0 presenti in A con valori appartenenti all'insieme Z = {1, 2, 3, ..., n^2} in modo tale che:
1. ogni elemento di Z sia presente in A esattamente una volta
2. esiste k > 0 tale che:
La sommatoria_i ai,j = k per j = 1, 2, ..., n
La sommatoria_j ai,j = k per i = 1, 2, ..., n
La matrice iniziale è fornita in input all'algoritmo, che deve fornire in output la notifica della non esistenza di una soluzione.

..in parole povere data una matrice A bisogna sostituire agli 0 opportuni numeri mantenendo l'unicità di ciascuno all'interno della matrice e valutare o meno la possibilità di creare un quadrato magico :muro:

Ho bisogno almeno di uno spunto su cui partire perchè ormai sono 3 giorni che impazzisco.. qui ho trovato un po' di informazioni sulle "caratteristiche" dei quadrati magici che potrebbero essere di grosso aiuto nell'implementazione dell'algoritmo: http://matematica.uni-bocconi.it/quadratimagici/introduzione.htm
Il problema grosso che ho riscontrato sono i molteplici fattori da tenere in considerazione, perchè creare un algoritmo che crea dal nulla un quadrato magico non è certo un problema, ma quando si tratta di riempire gli spazi vuoti rappresentati dagli 0 in modo opportuno le cose si complicano di un bel po' :help:

Hardware Upgrade Forum Database Error
Database Error Database error
The Hardware Upgrade Forum database has encountered a problem.

Please try the following:
  • Load the page again by clicking the Refresh button in your web browser.
  • Open the www.hwupgrade.it home page, then try to open another page.
  • Click the Back button to try another link.
The www.hwupgrade.it forum technical staff have been notified of the error, though you may contact them if the problem persists.
 
We apologise for any inconvenience.