.

Una cuestión de sombreros

Aquí tienes el código fuente en C donde se resuelve el problema de los presos y los sombreros propuesto por EL PAIS aquí haciendo que cada preso siga la estrategia indicada en la solución aquí. Si quieres, puedes verificar su funcionamiento y modificar el programa para comprobar otras posibles soluciones (por ejemplo, las que se indican en la propia solución del problema como no-óptimas) o con una determinada asignación inicial de sombreros no aleatoria.

Descargar PRESOS.c

PRESOS.C
PRESOS5.C (algoritmo recursivo)

Ejecución sin instalación de compilador de C
En www.codepad.org tienes un compilador de C online, de modo que puedes copiar el código, pegarlo allí y, comprobando que esté tachada la opción [√]Run code, pulsar el botón [Submit], y no sólo compilará el código sino que además mostrará la salida de la ejecución (siempre que la compilación haya finalizado sin errores).

3 Respuestas a “.”

  1. Marcos Ginel Dice:
    abril 27th, 2011 a las 13:00

    ¿Lo has escrito tu Enrique?

    Porque luego dices que hay que tener mucho tiempo para las 1900 líneas de Origen…

    Por cierto, se puede hacer por Divide y Vencerás, y sale más rápido el problema. Voy a ver si lo paso a C. 😛

  2. Enrique Dice:
    abril 27th, 2011 a las 16:48

    ¡Claro que lo he escrito yo!

    Marcos, esto era un pique personal entre Jorge y yo, ¿que haces viendo esto? Es un rinconcito reservado para el club PPP (Picando Por Placer).

    El algoritmo se puede hacer por Divide y Vencerás, usando recursividad o una tabla, pero no se correspondería con la realidad, pues el primero al que pedirían la respuesta sería al primero de la fila, el que no ve ningún sombrero. En la secuencia de llamadas a casos más simples, al final la primera respuesta sería la del último, luego la del anterior (que utilizaría la del último) y así hasta que la del primero se obtuviera en último lugar.
    El algoritmo de Jorge también lo tengo por ahí: él utiliza un switch de paridad que cambia cada vez que un preso -salvo el primero- elige sombrero negro (y acierta).
    Media hora estuvimos el sábado en la calle a las 5 de la mañana contrastando ambas estrategias… deberíamos haberte llamado.

    ¿y el compilador de C online?, chulo, ¿a que sí?

  3. Enrique Dice:
    abril 28th, 2011 a las 11:23

    El algoritmo recursivo de la estrategia (divide y vencerás) está colgado como PRESOS5.C
    En él puedes ver lo que me refería: para lanzar el proceso, el programa comienza preguntando por la respuesta al primero de la fila Respuesta(30), aunque luego las elecciones se irían resolviendo del último (el 1) al primero (el 30).

Deje una respuesta