Recopilo tres micro ejercicios de vibe coding que quiero tener localizados pero por su corto recorrido no merecen entrada propia. En el primero calcularemos un polinomio de 4º grado que "sorprendentemente" pasa por las cinco ciudades españolas más pobladas, adaptación a nuestro país de un post de X visto para Alemania. En el segundo ChatGPT nos ayuda a corroborar la ley de los grandes números al aplicar jitter entorno a una coordenada, aleatorizando radio y fase. Finalmente reconstruimos el movimiento de un personaje de un videojuego vintage de 8 bits que causó impacto en su día: 'Impossible Mission'.
Para cualquier conjunto de n coordenadas en el plano, todas ellas con abscisas distintas, existe un polinomio único de grado n-1 (o menor) que pasa por todas ellas. Aplicado a las 5 ciudades más pobladas de cualquier país por ejemplo, existirá un polinomio de grado 4 que las interpole:

Una segunda versión, esta vez con Copilot y el siguiente prompt: "Necesito dibujar en R un mapa de España, indicando sus 5 principales ciudades, y además calcular el polinomio de grado 4 que pasa por las 5 parejas de (longitud, latitud) a las que corresponden dichas ciudades y que se dibuje también el polinomio sobre el mapa". Copilot lo ha hecho todo a la primera:

Por motivos siempre difíciles de decodificar, este ejercicio se viralizó cuando lo publiqué en LinkedIn alcanzando cerca de 200.000 visualizaciones, mientras posts vecinos suyos más jugosos o meritorios no llegaron a las 1.000 visualizaciones:

~~~
Probando estrategias para añadir jitter alrededor de una posición de coordenadas 2D, si aleatorizamos con dos distribuciones uniformes: por un lado un radio de desplazamiento respecto a la posición de partida, y por otro un ángulo entre 0-360º, tendremos una distribución fuertemente concentrada entorno al punto de partida. Se debe a que a mayor radio considerado los puntos se habrán de repartir en un área mayor. Así la distribución teórica de las muestras aleatorias seguirá una ley 1/r (el inverso de la proporcionalidad 2πr correspondiente al perímetro de cada radio).
ChatGPT me ha hecho una función parametrizada para cualquier número de muestras que calcula y dibuja el scatter plot de las muestras a la vez que compara la distribución radial de muestras aleatorias con la teórica normalizada (1/r). Por la "Ley de los grandes números" a medida que vamos a un número elevado de valores la distribución aleatoria tiende a la teórica:

~~~
"Another visitor. Stay awhile. Stay... forever!"
Con esta amenazante voz digitalizada te recibía un videojuego clásico de 8 bits lanzado para Commodore 64 en 1984, 'Impossible Mission'. Causó impacto la calidad del movimiento del personaje principal, al que si no me fallan las cuentas se dedican en exclusiva nada menos que 3 de los 8 sprites de base que permitía el ordenador.
Además se trataba de sprites monocromos, que en el C64 tenían el doble de resolución (24x21) que los de color (12x21), lo que unido a que la carrera del personaje se construye con 14 frames distintos generaba un movimiento suave y bien definido para los estándares de la época, acompañado del buen sonido del C64 para las pisadas:

Pese a venir de las Américas el juego fue portado a las plataformas europeas clásicas de la época (ZX Spectrum, Amstrad,...), aunque sin llegar a alcanzar esa finura que tenía el original para C64.
Alguien se ha molestado en ripear esas 14 posiciones y con ello lo he devuelto a la vida en el siguiente GIF animado (hacer clic para verlo sin interpolación):
~~~
Repositorio con el código R: GitHub.
No hay comentarios:
Publicar un comentario
Por claridad del blog, por favor trata de utilizar una sintaxis lo más correcta posible y no abusar del uso de emoticonos, mayúsculas y similares.