Newsgroup: it.hobby.enigmi
Titolo: Problemino di logica

Vi propongo un simpatico problemino di logica... magari in molti lo 
conoscete già, però per chi non lo conoscesse:
In una stanza vi sono delle persone con un cappello in testa, di colore 
bianco o nero. Queste persone non possono parlare né comunicare in alcun 
modo, né vedere il colore del proprio cappello, ma ovviamente possono 
vedere quello degli altri.
Una persona esterna tramite un altoparlante dà un solo comando iniziale, 
anche ben articolato, e le persone si dispongono autononomanente in due 
gruppi, tutti i bianchi da una parte, ed i neri dall'altra.
Qual'è il comando?

On 19 Feb, 23:09, megaMAX

-
-
SPOILER
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
"Chi vede un numero pari di cappelli neri si metta a destra, chi ne
vede un numero dispari vada a sinistra".



io ho pensato questo
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.Due persone si mettano una di fianco all'altra, ed a turno tutte le
altre facciano questa operazione: se vedono tutti cappelli di colore
uguale, vadano ad uno degli estremi della fila, se invece ne vedono
due diversi si inseriscano tra i due.

 vede un numero dispari vada a sinistra".
Non l'ho capito benissimo cosa intendi, ma direi che non è corretto...


Corretto ;-)


E perche' mai?
A voler essere pignoli bisognerebbe specificare come distinguere la 
"destra" dalla "sinistra", ma l'idea di fondo mi pare corretta.
-- 
SHaduck

 "destra" dalla "sinistra", ma l'idea di fondo mi pare corretta.
Può essere destra/sinistra di chi parla, oppure si può usare nord/sud,
lato porta/lato finestra, ...
Questa soluzione è migliore dell'altra perché si formano veramente due
gruppi distinti, come richiesto nel problema, mentre nell'altro caso si
forma una fila unica (e l'ultimo arrivato non sa di quale gruppo fa
parte).
Io avevo pensato "chi vede n cappelli neri di qua, chi ne vede n-1 di
là" (dove n è il numero totale di cappelli neri), ma questa e` più
elegante.
Mauro


Avete ragione, anche questa è una soluzione corretta ed è molto 
elegante... si può usare come livello addizionale di difficoltà se uno 
indovina con il metodo iterativo di infilarsi tra un bianco ed un nero 
in fila... si può richiedere che i due gruppi siano fisicamente 
separati, o che dopo un momento iniziale (per contare i cappelli neri), 
la divisione sia istantanea ed in una sola mossa ;-)


Stamane al risveglio (l'obiezione mi frullava in testa già da ieri
sera) ho pensato che si potrebbe aggiungere questo comando: " Al
termine, quando si sarà formata una sola fila, tutti si pongano in
fila indiana e il primo che vede davanti a sè due cappelli adiacenti
di colore diverso prenda per mano la persona immediatamente davanti a
sé e costituisca un unico gruppo con quello e tutti gli altri gli
stanno dietro.




Non capisco. Se ci fossero 56 cappelli bianchi e 35 cappelli neri,
come funzionerebbe?

 come funzionerebbe?
Quelli con il cappello bianco vedono un numero dispari di neri (35) e
vanno da una parte, quelli con il cappello nero invece vedono un numero
pari (34) di neri e vanno dall'altra.
Mauro

 elegante.
Anch'io in prima battuta avevo pensato questa, ma quella pari-dispari 
non solo è più elegante, ma per di più non ha nemmeno bisogno che la 
"voce" sia informata sull'esatto numero di cappelli neri e/o bianchi.
bye
-- 
Paolo Lucchesi - p...@NOSPAMpaololucchesi.it



Capito, grazie. Bella soluzione, l'avevo letta distrattamente.

 Corretto ;-)
Cosě facendo non si ottiene una fila con tutti i bianchi da una parte ed i
neri dall'altra ?
Non sono proprio "due gruppi"... come si sa dove finisce un colore e
comincia l'altro ?
    Rebrac

 comincia l'altro ?
Basta che alla fine un bianco (o un nero) dall'estremità si muova e si 
infili sempre in mezzo tra bianchi e neri, che anche l'ultimo sa il suo 
colore ed a quel punto si possono dividere in due gruppi.


Che soluzione brillante!
Chissa' con 3 o N colori...
Ciao
Livio


Basta ripetere N-1 volte il procedimento con un colore alla volta... es 
con 3 colori (nero, bianco, verde):
1a iterazione: tutti i neri a destra, i non-neri (bianchi+verdi) a sinistra
2a iterazione: bianchi e verdi si separano in due gruppi con lo stesso 
criterio
Non credo si possa fare, con N>=3 colori, un'unica divisione istantanea 
come nel caso di 2 colori... almeno, per ora non mi viene in mente.

 come nel caso di 2 colori... almeno, per ora non mi viene in mente.
No, si può fare anche con N colori in un colpo solo... concentrandosi su 
N-1 colori alla volta, es. con N=3 e colori RGB, si avranno ovviamente 4 
possibili combinazioni di R-G, che rappresentano i possibili conteggi di 
colori di un individuo:
R=pari, G=pari
R=dispari, G=dispari
R=pari, G=dispari
R=dispari, G=pari
di queste, ovviamente, solamente 3 su 4 saranno realmente applicabili ai 
3 gruppi, a seconda del valore iniziale di R e G.
Quindi:
- se la voce esterna conosce il numero dei cappelli dei vari colori, 
darà l'ordine esatto per creare i 3 gruppi in un colpo solo, ognuno al 
posto desiderato
- se la voce non lo sa, dovrà dire di formare 4 gruppi pari alle 4 
permutazioni, ma uno sarà vuoto (nel caso di due colori, questo 
corrisponde al fatto che se la voce non sa la composizione dei colori 
nella stanza, potrà raggruppare bianchi e neri da due parti diverse, ma 
senza decidere a priori se i neri staranno a destra o a sinistra)
Generalizzando con N colori:
- se la voce esterna conosce il numero dei cappelli dei vari colori, 
darà l'ordine esatto per creare gli N gruppi in un colpo solo, ognuno al 
posto desiderato
- se la voce non lo sa, dovrà dire di formare 2^(N-1) gruppi pari alle 
permutazioni, ma 2^(N-1) - N saranno vuoti