Rompicapi: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Rb
Riga 29:
=== Soluzione ===
{{cassetto
|titolo=Soluzione|
|testo=Per comodità tra parentesi viene indicata l'ipotesi a cui si fa riferimento.
}}
 
Sappiamo che nella prima casa vive il norvegese(9), quindi la seconda casa sarà blu(14).
Alcune (6) soluzioni del problema
Essendo norvegese, la casa non può essere rossa (1), e nemmeno verde o bianca(4), quindi deve essere gialla.
Fumando Dunhill, non beve birra(12), vivendo in una casa gialla, non beve caffè(5), abitando la prima casa non beve latte(9), e non essendo danese non beve tè(3). Quindi deve bere acqua e il suo vicino, che abita nella casa blu(14), fuma Blend(15) e ha i cavalli(11); inoltre non può essere inglese(1), né tedesco(13), né svedese(2), né norvegese(9). Deve quindi essere danese, e bere té(3).
 
Poiché nella casa centrale si beve latte(8), la casa verde è la penultima, dovendo essere quella alla sua destra bianca(4); resta solo la casa rossa, che deve essere quella centrale.
Possiamo associare ciascuna soluzione ad una matrice di cinque righe per cinque colonne. Ciascuna riga corrisponde alla disposizione dei 5 elementi previsti per le categorie introdotte dal quiz:
Quindi l'inglese(1) beve latte(8), e l'uomo nella casa bianca beve birra; bevendo birra, deve fumare Blue Master(12).
 
nazionalità
 
colore
 
bevanda
 
sigarette
 
animale
 
Di seguito è riportato un esempio che non costituisce una soluzione:
 
 
norvegese-svedese-tedesco-danese-inglese
 
verde-blu-bianca-gialla-rossa
 
caffe-birra-latte-the-acqua
 
pall mall-blue master-prince-dunhill's-blends
 
uccellini-cane-cavalli-gatti-pesciolino rosso
 
 
se teniamo conto che nella generica riga non ci sono ripetizioni di elementi, ma debbono comparire tutti e cinque, il problema riconduce alla formazione della generica disposizione di 5 elementi senza ripetizioni. Le disposizioni sono in numero pari al fattoriale di 5, quindi 120.
Pertanto occorre prevedere la formazione di tutte le 120 disposizioni per ciascuna delle 5 righe. In sostanza eseguiamo 5 cicli nidificati, ciascuno di essi provvede alla formazione delle 120 possibili disposizioni per la riga in lavorazione:
 
 
Start ciclo formazione riga 1 - (120 disposizioni) associato all'indice I
 
Start ciclo formazione riga 2 - (120 disposizioni) associato all'indice J
 
Start ciclo formazione riga 3 - (120 disposizioni) associato all'indice K
 
Start ciclo formazione riga 4 - (120 disposizioni) associato all'indice L
 
Start ciclo formazione riga 5 - (120 disposizioni) associato all'indice M
 
 
la matrice in prova è formata, si invoca la subroutine test per controllare se è una soluzione
 
 
End ciclo formazione riga 5 associato all'indice M
 
End ciclo formazione riga 4 associato all'indice L
 
End ciclo formazione riga 3 associato all'indice K
 
End ciclo formazione riga 2 associato all'indice J
 
End ciclo formazione riga 1 associato all'indice I
 
 
end
 
 
subroutine test: controlla se la matrice è conforme alle regole introdotte dall'indovinello
 
 
Si nota che il numero delle matrici esaminate vale 120 elevato alla 5, circa 25 miliardi. Essendo abbastanza impegnativo per le risorse di un PC ho interrotto le elaborazioni dopo circa 19 miliardi di test (circa 50 ore di elaborazione). In particolare gli indici delle variabili di ciclo valevano, allo stop:
 
 
I = 91
 
J = 120
 
K = 120
 
L = 120
 
M = 119
 
 
Questo metodo è del tutto generalizzato nella formazione della matrice delle disposizioni, e se cambiano gli indizi basta aggiornare la routine test. E' un bell'esercizio di programmazione di livello universitario, specialmente in merito al criterio di formazione della generica disposizione: se qualcuno desidera il codice (in Visual Basic) può contattarmi:
 
ing.Roberto Nascetti, email: studionascetti@tiscalinet.it
 
Ho trovato 6 soluzioni al problema a dimostrazione che, quantomeno, la soluzione non è necessariamente il tedesco, come ormai si legge ovunque. Riporto alcune soluzioni in cui il pesciolino è associato al danese, una in cui è associato al norvegese. Probabilmente ce ne sono altre. Ho esaminato circa il 76% delle probabilità.
 
 
Formazione della matrice 1
 
"norvegese", "tedesco", "svedese", "'''danese'''", "inglese"
 
"verde", "blue", "bianca", "gialla", "rossa"
 
"caffe", "acqua", "latte", "the", "birra"
 
"pall mall", "prince", "blends", "dunhill's", "blue master"
 
"uccellini", "gatti", "cane", "'''pesce rosso'''", "cavalli"
 
Date & time 04-11-2010 09:08:39
 
 
Formazione della matrice 2
 
"norvegese", "tedesco", "svedese", "'''danese'''", "inglese"
 
"verde", "blue", "bianca", "gialla", "rossa"
 
"caffe", "acqua", "latte", "the", "birra"
 
"pall mall", "prince", "blends", "dunhill's", "blue master"
 
"uccellini", "gatti", "cane", "'''pesce rosso'''", "cavalli"
 
Date & time 04-11-2010 09:08:39
 
 
Formazione della matrice 3
 
"norvegese", "'''tedesco'''", "svedese", "danese", "inglese"
 
"verde", "blue", "bianca", "gialla", "rossa"
 
"caffe", "acqua", "latte", "the", "birra"
 
"pall mall", "prince", "blends", "dunhill's", "blue master"
 
"uccellini", "'''pesce rosso'''", "cane", "gatti", "cavalli"
 
Date & time 04-11-2010 09:35:17
 
 
Formazione della matrice 4
 
"'''norvegese'''", "tedesco", "svedese", "inglese", "danese"
 
"verde", "blue", "gialla", "rossa", "bianca"
 
"caffe", "acqua", "latte", "birra", "the"
 
"blends", "prince", "dunhill's", "blue master", "pall mall"
 
"'''pesce rosso'''", "gatti", "cane", "cavalli", "uccellini"
 
Date & time 04-11-2010 09:43:35
 
 
Formazione della matrice 5
 
"norvegese", "tedesco", "svedese", "inglese", "'''danese'''"
 
"verde", "blue", "bianca", "rossa", "gialla"
 
"caffe", "acqua", "latte", "birra", "the"
 
"pall mall", "prince", "blends", "blue master", "dunhill's"
 
"uccellini", "gatti", "cane", "cavalli", "'''pesce rosso'''"
 
Date & time 04-11-2010 12:20:49
 
 
Formazione della matrice 6
 
"norvegese", "tedesco", "inglese", "'''danese'''", "svedese"
 
"verde", "blue", "rossa", "gialla", "bianca"
 
"caffe", "acqua", "latte", "the", "birra"
 
"pall mall", "prince", "blends", "dunhill's", "blue master"
 
"uccellini", "gatti", "cavalli", "'''pesce rosso'''", "cane"
 
 
N.iterazioni circa 91 x 120 ^ 4 (indicativamente 19 miliardi contro 25 miliardi)
 
Si noti che metodi del tutto analoghi vengono utilizzati per decifrare le password. L'algoritmo è detto "force brute" per evidenti motivi.
 
L'inglese non può fumare le Prince(13), quindi il tedesco vivrà nella casa verde; lo svedese invece vivrà in quella bianca e avrà un cane(2), quindi il norvegese avrà i gatti(10).
 
Infine l'inglese dovrà per forza fumare Pall Mall, e avrà gli uccellini(6), perciò i pesciolini li può avere solo il tedesco.
 
La risposta corretta è '''al tedesco'''.
 
}}