Crear usuario · Acceder

Dibujando la aleatoriedad

Enredando, como de costumbre se me ocurrió la idea de mostrar gráficamente la aleatoriedad generada por un programa. Para ello recurrí, como siempre al lenguaje más sencillo y efectivo, scripting de mIRC.

Hice una ventana del tipo picwin con el comando /drawdot que es capaz de escribir puntos en una ventana vacía. Estos puntos son definidos por unas coordenadas x e y. Entonces mediante un sencillo código, que genera un bucle infinito, en cada interacción va incrementando o decrementando los valores x e y dependiendo de una aleatoriedad generada por el identificador $rand(0,1) lo que da un numero aleatorio entre 0 y 1.

En otras palabras, imagina que tienes un lápiz y una hoja de papel, empiezas en el centro y lo mueves sin dejar de pintar, moviendolo aleatoriamente hacia arriba, abajo, izquierda o derecha.

gonzo dibujando aleatoriedad aleatorio
En la imagen se aprecia que la aleatoriedad no es 100% correcta estadísticamente, al menos de momento, ya que tardo 5 minutos en recorrer todos esos caminos y podía haber seguido hasta el infinito. Empezó desde el centro de la imagen y esta ha ido abriéndose camino hacia uno u otro lado aleatoriamente.

Se puede apreciar que hay claramente más hacia abajo que hacia arriba, seguramente si hubiese dejado más tiempo hubiera cambiado el rumbo y habría completado la parte de arriba. Creo que estadísticamente debería hacer eso pero... ¿prediciendo la aleatoriedad? quien sabe.

           

Artículos relacionados:

  1. Dibujando con campos de arroz, obras de arte en los campos de cultivo
7
+0 GONZO 08-12-2004
Categoría: Interesante
  1. +0 bokY 2004-12-14 19:01:45

    me pareze que el $rand de mIRC no es del todo aleatorio cuando se trata de grandes cantidades. habría que investigar eso ¡xd!

    :o una idea sería hacer un sustituto de $rand que fuese totalmente aleatorio

  2. +1 GONZO 2004-12-14 23:36:01

    pues eso parece, pero a ver como se hace un generador aleatorio, me gustaria saber como funcionan :P

  3. +0 Martín 2004-12-15 22:15:06

    ¿La aleatoriedad existe en un ordenador?

  4. +1 GONZO 2004-12-29 14:43:18

    Pues segun tengo entendido el concepto, no. Es matematica.
    Es una de las cosas que me gustaria estudiar un dia de estos.

  5. +0 Jimmy_RAY 2005-02-03 00:48:51

    Tendrías que mostrar muchos gráficos para demostrar eso. No vale con un simple dibujo ya que es una posibilidad de que haya tomado. Tendrías que demostrar eso con muchos más dibujos. Son solo posibilidades, ¿porqué no ese dibujo? Porqué no pudo ser una coincidencia que hubiera esa vez más para abajo que para arriba, en cambio en otra haya más para arriba que para abajo y en otra más o menos por el medio.

    La aleatoriedad se hace mediante cálculos tomando como base el reloj del sistema. O por lo menos creo que era así...

  6. +0 eLb0rX 2006-10-19 23:45:06

    En C, la mejor aleatoriedad se consigue inicializando
    srand((unsigned)***)

    y colocando en *** un algoritmo que modifique de tal manera
    que no se obtenga el mismo resultado nunca al inicializar, por ejemplo

    srand((unsigned)time(NULL))

    la generacion de numeros aleatorios entre 0 y RAND_MAX la genera

    rand()

    si a alguien se le ocurre algun algoritmo que modifique tanto el tiempo como para que el mismo segundo pueda ser distinto, por favor que lo postee.

  7. +1 GONZO 2007-01-03 16:14:15

    #6 Pues tomando los microsegundos... la variable que lo genera en Scripting mIRC es $ticks. Este pseudo-lenguaje está basado en C, por lo que supongo que será similar.

Artículo escrito por GONZO para Blogs Teoriza.
Dibujando la aleatoriedad, dibujo

 
Ocio Tecnología Mujer Informática Contactos Cultura Vacaciones Interesante Místico Personal English
Ocio Alarmas Intimidades Internet Chat Poesías Turismo Legalidad Tarot GONZO Leisure
Juegos Tecnología Salud Adsl Messenger Mundo Viajes Videncia Mia Woman
CineTV Inventos Mujer Música Tech
ComoHacer
Enlaces: MovilZona Eventos Sagas Loteria Navidad 2012 Test de velocidad Pedrea

Blogs Teoriza™ · Red de Blogs · · Aviso Legal · Creative Commons · 2003-2011