|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 729
|
Quadrati magici
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 ![]() 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/qua...troduzione.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' ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:04.