Publicidad

RSS Algoritmos

Algoritmos: Simula tus propias campanadas con secuencias MIDI en Java.Encuentra a Wally con Mathematica... sí, como lees.Google AI Challenge:...

Simula tus propias campanadas con secuencias MIDI en Java

Comentar
Simula tus propias campanadas con secuencias MIDI en Java

addEventListener('load', function (event) { prettyPrint() }, false);

¿Nervioso por atragantarse con las uvas esta noche?. En este post, hemos preparado un entorno de test simulado para que puedas practicar antes para prevenir cualquier eventualidad o percance con las uvas como empezar con los cuartos, que te de la risa tonta, que el tamaño de las uvas no sea el adecuado, etc.

Este entorno se trata de un programa realizado en Java que mediante la creación de una secuencia MIDI pretende realizar el aviso previo, los cuartos, las doce campanadas y, como no, los aplausos finales. Como pretexto explicaré un poco como lo hemos preparado y como funciona.

Leer más »

Encuentra a Wally con Mathematica... sí, como lees

4 Comentarios
Encuentra a Wally con Mathematica... sí, como lees

Navidad. Pavo, villancicos, el discurso del Rey, polvorones, la Misa del Gallo, Papá Noel. Papá Noel va de rojo y blanco. Como el Atleti, la Coca Cola o Wally. Curiosamente este post trata sobre encontrar a Waly usando Mathematica. Así de fino hilvanamos en Genbeta Dev. donde no descansamos ni por Navidad, siempre trayéndote artículos interesantes y/o curiosos como es este caso.

En nuestra amada Stack Overflow alguien preguntaba si sería posible encontrar a Wally (Waldo en el idioma de Shakespeare) en una de sus míticas láminas utilizando el potencial de Mathematica, el popular programa de cálculo matemático y, a su vez, poderoso (muy poderoso) lenguaje de programación. La respuesta no tardó en llegar y era de carácter afirmativo:

Leer más »
Publicidad

Google AI Challenge: Ants, esas tiernas hormiguitas

3 Comentarios
Google AI Challenge: Ants, esas tiernas hormiguitas

Si en un artículo anterior os hablábamos de Robocode, esta vez es Google la que nos trae AI Challenge, un campeonato de supervivencia donde cambiamos los tanques robot por lozanas hormigas de colores que tendremos que manejar para lograr hacernos con el control del tablero.

El objetivo del juego es programar un comportamiento adecuado para manejar distintas variables tales como no caer al agua que rodea todo el tablero (y dentro del barro aparece como obstáculo), conseguir capturar la comida que aparece aleatoriamente en el tablero (con la que aumentamos nuestro ejército) y evitar que los contrarios nos rompan las entradas a nuestros hormigueros.

Este es el reto que nos propone AI Challenge para este otoño, y ya da por concluido el anterior llamado Planet Wars y, aunque todas las herramientas están hechas en Python, nuestro bot lo podremos acometer en distintos lenguajes de programación: Python, Java, C# o PHP.

Más información | Página de AI Challenge Via | Damos gracias a Adrián que nos puso sobre la pista gracias a este artículo

Leer más »

"Programar bots de Starcraft puede llegar a ser más complejo que hacerlo para el ajedrez", entrevista a Alberto Uriarte

4 Comentarios
"Programar bots de Starcraft puede llegar a ser más complejo que hacerlo para el ajedrez", entrevista a Alberto Uriarte

Hace pocas semanas se celebró el 2º Torneo Internacional de Bots de Starcraft organizado por la RTS Game AI Research Group” de la University of Alberta y patrocinado por AIIDE – the AI for Interactive Digital Entertainment conference. En otras ocasiones hemos hablado de bots pero os aseguro que este bot va mucho más allá desde el punto de vista de la programación.

Para explicarnos su funcionamiento hemos estado charlando con Alberto Uriarte, el autor de Nova, que ha hecho de este desarrollo la tesis de su master, por lo que nos encontramos ante un estudio pormenorizado, detallado y muy documentado sobre la intensa búsqueda de un bot perfecto en un entorno sumamente complejo.

Leer más »

TopCoder: un gimnasio para entrenar programadores

9 Comentarios
TopCoder: un gimnasio para entrenar programadores

Topcoder es una comunidad online que organiza competiciones de algoritmia y hacking a nivel internacional. Detrás está la empresa con mismo nombre que canaliza todo esto a una buena forma de orientarlo a reclutadores de todo el mundo, vendiéndose a si misma como un producto para encontrar a los mejores.

No en vano, entre sus clientes se encuentran empresas como Intel, Facebook, Paypal o la mismísima Agencia Nacional de Seguridad de los Estados Unidos, las cuales organizan eventos patrocinados con distintas pruebas especialmente definidas por ellos a los que cualquiera de nosotros podría acceder y mostrar al mundo su valía.

Leer más »

La instrucción SQL Insert y su difícil legibilidad

29 Comentarios
La instrucción SQL Insert y su difícil legibilidad

addEventListener('load', function (event) { prettyPrint() }, false);

En ocasiones quedo asombrado (para mal) de que se haya aceptado como un estándar universal ciertas operaciones o instrucciones. Una de estas operaciones que me parece increíble que haya podido llegar a ser un estándar es la instrucción SQL para realizar inserciones.

Si pudiéramos calificar la maquiavélica invención de la instrucción de inserción, yo lo pondría entre el invento del paraguas (un instrumento diseñado para sacarle los ojos a los viandantes) y la invención de la batamanta (un invento diseñador para … aun no lo se).

Por alguna razón, el que diseñó esta instrucción quizá pensó que los programadores estabamos lo suficientemente aburridos y no teníamos otra cosa mejor que hacer que estar contando las posiciones para encajar los nombres de los campos que lleva la inserción y los valores correspondientes que van asociados.

Una instrucción a partir de diez campos empieza a ser incomprensible a simple vista, sobretodo si lo que se insertan son valores numéricos o valores que por su valor pueden ser cualquier cosa.

insert into tabla (campoN, campoE, campoF, campoC, campoL, campoQ, campoR, campoT, campoY, campoH, campoG campoS, campoW, campoZ, campoP) values(6,2,5,3,4,3,7,6,8,32,4,6,8,4,3)

¿Quién sabe decirme, sin contar posiciones, que campo se rellena con el valor 32?

Leer más »
Publicidad

Implementando el algoritmo QuickSort

14 Comentarios
Implementando el algoritmo QuickSort

addEventListener('load', function (event) { prettyPrint() }, false);

Desde que existe la ciencia de la computación, uno de los mayores problemas con los que los ingenieros se encontraban en su día a día, era el de ordenar listas de elementos. Por su causa, diversos algoritmos de ordenación fueron desarrollados a lo largo de los años y siempre existió un intenso debate entre los desarrolladores sobre cual de todos los algoritmos de ordenación era el más rápido.

El debate finalizó abruptamente en 1960 cuando Sir Charles Antony Richard Hoare, nativo de Sri Lanka y ganador del premio Turing en 1980, desarrolló el algoritmo de ordenación QuickSort casi por casualidad mientras ideaba la forma de facilitar la búsqueda de palabras en el diccionario.

El algoritmo QuickSort se basa en la técnica de "divide y vencerás" por la que en cada recursión, el problema se divide en subproblemas de menor tamaño y se resuelven por separado (aplicando la misma técnica) para ser unidos de nuevo una vez resueltos.

Leer más »

Reddit: ¿qué sistema usa para puntuar las entradas?

1 Comentario
Reddit: ¿qué sistema usa para puntuar las entradas?

addEventListener('load', function (event) { prettyPrint() }, false);

Para los que no lo sepan, Reddit es un proyecto de código abierto, escrito en Python, cuyo funcionamiento se basa en usuarios que publican historias, a las que el resto de usuarios le otorgan una puntuación positiva o negativa y en la que pueden participar añadiendole comentarios. Hace unos meses, Amir Salihefendic, cofundador del popular Plurk, se tomó la molestia de revisar el código fuente de Reddit para estudiar el modo en que este popularísimo portal puntúa y construye la página de las historias enviadas por los usuarios.

Dicho artículo se extendió como la pólvora ya que daba una explicación muy clara, exponiendo trozos de código y fórmulas matemáticas muy bien documentadas. Aunque el sistema de ranking se halla escrito en lenguaje Pyrex (sirve para escribir extensiones de Python) Amir Salihefendic los ha traducido a Python para que se puedan comprender mejor.

Leer más »
Publicidad
Inicio