Algoritmo di scrittura su set di dati 2D in inglese semplice

5

Ho iniziato una lezione introduttiva in Java e il materiale è assolutamente orrendo e devo ottenere voti eccellenti per essere accettato nel master, quindi la mia domanda da principiante:

Nel mio incarico devo scrivere algoritmi (non ancora pseudo-codice) per risolvere un gioco da tavolo (Sudoku). In sostanza, le note dicono che un algoritmo è una specifica dell'input (s), dell'output (s) e dei trattamenti applicati all'input per ottenere l'output. La mia domanda si basa sulla formulazione degli algoritmi perché probabilmente potrei codificarla ma non riesco a metterla su carta in modo coerente.

Il gioco ha una tavola 9x9 e uno degli algoritmi da scrivere deve trovare la soluzione osservando 3 quadrati (orizzontali o verticali) e vedere se uno dei tre sottoquadri corrisponde al numero che stai cercando. Se nessuno corrisponde, il numero che stai cercando di posizionare è in uno degli altri 2 set di 3 sottoquadri (vedi l'immagine per avere un'idea migliore).

Nota: l'attività non è scrivere un risolutore completo. Solo un algoritmo per risolvere il caso specifico che ho descritto.

Non riesco davvero a capire come formulare la soluzione nei termini sopra descritti o forse è semplicemente troppo semplice, ecco cosa stavo pensando:

Input: un set bidimensionale di dati di dimensioni 9 per 9 da risolvere e un numero da cercare.

Ouput: un insieme bidimensionale di dati di dimensioni 9 per 9 risolti o parzialmente risolti.

Trattamento: scansiona ogni serie di quadrati 3x9 e 9x3. Per ogni riga o colonna di un quadratino di 3x3, verificare se il numero corrisponde a una linea (o colonna). Se lo fa, passa alla riga successiva (o colonna). In caso contrario, passare al successivo riquadro 3x3 nella stessa riga (o colonna). Risciacqua e ripeti.

Questo ha senso come un algoritmo scritto in inglese semplice? Non cerco una risposta all'algoritmo in sé ma piuttosto alla formulazione di algoritmi in inglese semplice.

Nota : Apparentemente questo non è chiaro: non si tratta di risolvere tutte le possibili soluzioni. Si tratta di risolvere solo questo particolare insieme di regole. Non ho fatto il compito. In ogni caso, questo non è nemmeno lontanamente rilevante in quanto questo non è l'obiettivo della mia domanda.

    
posta ApplePie 27.10.2012 - 05:48
fonte

1 risposta

2

Sii fastidiosamente completo. Ad esempio, non descrivi come prendi l'input 9x9 e crei il set di quadrati più piccoli. Anche la prima frase parla di 9x3, 3x9 quadrati, la seconda guarda 3x3 quadrati di errore o passaggio mancato? Può aiutare a scrivere lo pseudo-codice (o il codice reale), quindi tornare indietro a una descrizione dettagliata finché non si ottiene il blocco.

Dovrebbe essere qualcosa del tipo: Interruzione dell'input 9x9 in un insieme di 9 sottoquadri prendendo l'intersezione delle prime 3 righe e colonne poi le successive tre colonne ecc. Quindi esaminare ciascun sottoquadro per la seguente proprietà zzz. Se mantiene la trasformazione delle preforme xyz e continua con il quadrato secondario successivo. Se non lo tiene, salta e continua. ecc. Riassemblare il quadrato 9x9 dalle sottogruppi 3x3 con questa trasformazione e restituirlo.

    
risposta data 29.10.2012 - 17:03
fonte

Leggi altre domande sui tag