Blogs Teoriza
Acceder · Crear usuario
Anunciarse
Canal Personal   GONZO · Mia

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.

7 GONZO 08-12-2004
+0 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 - GONZO, Blogs Teoriza | gonzo dibujos.
Blogs Teoriza
Ocio Tecnología Cuidarse Informática Contactos Cultura Vacaciones Interesante Místico Personal
Ocio Alarmas Intimidades Hosting Chat Poesías Hoteles CompraVenta Tarot GONZO
Juegos Tecnología Salud Adsl Messenger Mundo Viajes Videos Videncia Mia
CineTV Inventos Internet Música EnCrucero Polémicas
Deportes Virtual Seguridad ComoHacer Turismo Legalidad
Motor Ubuntu Actualidad
Hardware
Enlaces: MovilZona

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