¿Cuáles son los problemas de programación que resolvió que le hicieron decir “¡Guau! ¡Lógica asombrosa”?

Cuando tenía 15 años, mi escuela me envió a un campamento de computación en todo el país (esto fue a principios de los años 80, como probablemente adivinarán por el hardware involucrado). Uno de los problemas que nos dieron: escribir un juego en el que la computadora tenga que adivinar, basándose en las respuestas de sí / no a una serie de preguntas, el animal que el jugador había seleccionado de una lista de 20. (Los observadores astutos notarían que esto es simplemente una variante de 20 preguntas, aunque todavía no había estado expuesto a ese juego).

Los giros:

  1. El programa tuvo que asignar pesos de 0 y 100 a las respuestas sí / no de cada pregunta, y combinar matemáticamente los pesos recolectados de alguna manera para adivinar el animal.
  2. El programa tuvo que ser escrito en un oscuro dialecto de Lisp en una Apple] [, los cuales, por supuesto, fueron proporcionados por los organizadores del campamento. Naturalmente, ninguno de nosotros, los niños, habíamos programado en Lisp antes, por lo que nos dieron un tutorial breve y apenas adecuado antes de comenzar nuestros esfuerzos.
  3. Teníamos 2 horas para completar esta tarea.

Nuestra cohorte de 30 obtuvo solo dos programas de trabajo al final. Había “terminado” dentro de media hora (el otro tipo tenía solo dos minutos más o menos), por lo que el maestro que nos asignaron deambulaba para verificar y criticar lo que esperaba que fuera un programa lleno de errores. Para su sorpresa, mi código funcionó perfectamente y la computadora pudo adivinar los 20 animales sin error.

Luego, su ceño se frunció cuando le expliqué mi lógica: simplemente había elaborado el conjunto mínimo de preguntas que me permitirían construir un árbol de decisión binario (es decir, pesos de 0 o 100). La mayor parte de mi menos de media hora en realidad la había pasado luchando con la implementación de Lisp. Intentó objetar, pero para su crédito, se dio cuenta de que había cumplido con todas las reglas escritas.

De acuerdo, técnicamente fue alguien más quien exclamó el equivalente a “¡Wow! Awesome logic”, pero gracias por la oportunidad de pasear por el carril de la memoria …