[caracas-pm] Caracas Perl Quiz #1

Ernesto Hernández-Novich emhn at telcel.net.ve
Wed Feb 9 06:35:29 PST 2005


El año pasado nos fue muy bien con la tradición de reunirnos
periódicamente. Vamos a ver si éste año podemos introducir la tradición
de enviar a la lista al menos un ejercicio mensual que nos permita
ejercitarnos en cosas que no necesariamente son "del mundo real" pero
que nos den herramientas para enfocar los problemas de manera diferente.

Se me ocurrió el nada original nombre de Caracas Perl Quiz y éste es el
primero. Yo diría que tomemos las siguientes "reglas" para que éstos
ejercicios sean del disfrute de todos:

0. Sean tan creativos como quieran. Se vale usar módulos, se vale
preguntar todo lo que se les ocurra y proponer descabelladas y novedosas
técnicas para resolver el problema. El punto de usar Perl es divertirse,
expresarse y resolver.

1. Mantengamos _un_ sólo hilo raíz para el ejercicio (es decir,
cualquier cosa relacionada con el ejercicio, que sea un Reply al mensaje
original o alguno de los mensajes del hilo; evitar crear un mensaje
nuevo).

2. Cuando alguien quiera enviar una solución _completa_, ponga en el
asunto "[solucion]". De ese modo aquellos que todavía están pensando en
el ejercicio pero _no_ quieren "viciarse" ni quieren "pistas", pueden
dejar de leer ese mensaje.

3. Sería excelente dedicar algunos minutos de nuestra reunión mensual
para hablar del Quiz y las soluciones propuestas por los participantes.

El Quiz del mes es como sigue:

Todo el mundo conoce los números 0-800-USEPERL, en los cuales se usan
letras para facilitar la memorización del número teléfonico. Si bien el
ejemplo que yo puse tiene dos palabras ("use" y "perl"), concentrémonos
en aquellos números que tienen _una_ sola palabra de siete, seis o cinco
letras, e.g. 0-800-HALLACA, 0-800-0SOLERA o 0-800-00PIZZA. Noten que el
0-800 y el '0' o '00' prefijos no son importantes. La pregunta es,
¿habrá palabras que _compartan_ el mismo número? Es decir, dada la
palabra P1 en el diccionario, habrá otra palabra P2 que tenga el mismo
"número telefónico".

La idea del ejercicio es escribir un programa que analice el diccionario
de un idioma [1], se concentre en las palabras que nos interesan y
cuando encuentre dos o más palabras que compartan el mismo número
telefónico indique el número y _todas_ las palabras que lo comparten.

[1] En cualquier sistema GNU/Linux, en /usr/share/dict/ tienen archivos
    con las palabras del diccionario. En Debian, pueden instalarlos con
    apt-get install wenglish wspanish
-- 
Ernesto Hernández-Novich - On Linux 2.6.10 i686 - Unix: Live free or die!
Geek by nature, Linux by choice, Debian of course.
If you can't apt-get it, it isn't useful or doesn't exist.
GPG Key Fingerprint = 438C 49A2 A8C7 E7D7 1500 C507 96D6 A3D6 2F4C 85E3



More information about the caracas-pm mailing list