- Numero las cajas, pero en binario (1000 cajas --> 10bits)
- Elijo tantos presos como bits necesita la representación (o sea: 10) y los identifico de la siguiente manera: Bit0, Bit1, Bit2,... etc
- Saco una sola botella de cada caja y le hago tomar un trago a aquellos presos cuyo bit está en 1.
Es decir, si la botella es de la caja 0000100011b = 35d solo toman los presos Bit0, Bit1 y Bit5.
- Transcurridas 20 horas cuento los muertos y el número binario formado me dice cual es la caja envenenada.
- Cambio el proveedor de vinos.
PD: Como cada preso sea ha tomado 500 tragos va a ser necesario un médico para poder diferenciar los muertos de los borrachos.