Laboratorio di Informatica per Fisici

Transcript

Laboratorio di Informatica per Fisici
LABORATORIO DI INFORMATICA PER FISICI
In alcune varianti del SuDoku, si chiede di riempire la griglia in modo da soddisfare differenti
vincoli. In questo assegno studiamo una versione del SudoKu in cui la griglia è divisa in 9
sottogriglie. Le sottogriglie anziché avere la consueta forma 3 × 3, sono di forma irregolare, ma
comunque devono sempre trovarsi tutte le cifre da 1 a 9, senza ripetizioni.
Il compito consiste nell’implementare l’algoritmo di BackTrack per la soluzione del SudoKu
con intarsi.
L’input al problema consiste dei seguenti elementi:
(1) una stringa line che codifica una tabella 9×9 in cui le caselle vuote sono rappresentate
da uno 0;
per l’esempio in figura, abbiamo
line="740500691800009002304200800030020708000608000601040030008002503500300006183007025"
(2) una lista di intarsi; ogni elemento di questa lista è a sua volta una lista; ogni lista
specifica un intarsio mediante l’elenco delle celle che compongono l’intarsio. Le celle
sono identificate da un numero tra 0 e 80; la cella in alto a sinistra è la cella associata
al numero 0 e quella in basso a destra è associata al numero 80.
Ad esempio, l’intarsio contenente la cella 0 (che contiene la cifra 7) è descritta dalla
seguente lista
[ 0, 1, 2, 9, 10, 11, 19, 28, 37]
Data: 17 dicembre, 2015.