jueves, julio 05, 2007

Funciones Random, numero aleatorios y filosofia de andar por casa

Ayer por la noche, estaba yo tumbado en la camita cuando le pregunte a mi mujer: "¿Se pueden predecir los resultados de las funciones Random?"

Si amiguitos, yo en la cama y lo que se me ocurre es esta tonteria.

Yo creo que se puede predecir el resultado de cualquier funcion random., puesto que al final una funcion random es un algoritmo con unos parametros. La dificultad para "adivinar" los resultados se vera en funcion del algoritmo utilizado y los parametros elegidos.

Entonces.... ¿realmente existen los numeros aleatorios?... es decir ¿es posible programar una funcion random que realmente sea random?

Una amiga me ha dicho que matematicamente es posible establecer una sucesion de numeros aleatorios... pero tengo mi duda puesto que siempre se basará en alguna funcion y/o algoritmo predecible... con un numero mayor o menor de reglas y/o parametros preestablecidas que harán que el resultado sea predecible.

Por lo que voy mas lejos... ¿que funcion "random" lleva un virus para mutar y convertirse en otro?, ¿cual es el mecanismo "mas o menos random" que establece nuestro cerebro para recitar numeros en voz alta de forma aleatoria?, ¿es predecible el cuando mutara una celula normal a una cancerigena?

Es decir, cada chisme, celula, lenguaje de programacion, persona, animal y/o cosa lleva incorporado una funcion random... y ¿es mi funcion random igual que la de mi mujer, mi hermana, padre o madre?

¡¡¡¡ Diossssssssssssssssssssssssssssssssss que paranoia !!!!

5 comentarios:

Alvy dijo...

Matemáticamente no puedes generar números totalmente aleatorios, como bien dices, sólo existen algoritmos y dependen de un valor de semilla inicial. Por eso técnicamente todos esos algoritmos se llaman en realidad «algoritmos de generación de números pseudo-aleatorios». Suelen utilizar la realimentación del resultado como nueva semilla y cosas así. Una limitación es el rango de los números resultantes, que hace inevitable que se entre en un ciclo a partir de cierto límite. Los mejores algoritmos tienen rangos amplios y circos largos, pero acaban «repitiéndose».

Una alternativa es usar fuentes de datos externas como puede ser el reloj del ordenador, el tiempo entre tecleos, el movimiento del ratón, etc. Esto suele usars más bien para generar semillas con cierto grado mayor de aletoriedad y es bastante práctico realmente.

paspartus dijo...

Muchas gracias por la aclaracion... estaba buscando funciones de generacion de numeros los mas aleatorios posibles...

En estos algoritmos de generacion de numeros pseudo-aleatorios imagino que se podran introducir algoritmos geneticos para ampliar la "aleatoriedad"...

Alvy dijo...

No, todos tienen un límite debido al rango de números que manejen.

Tienes una muy buena referencia aquí

http://en.wikipedia.org/wiki/Pseudorandom_number_generator

Javier dijo...

Jode. ¿Tio tu en la cama y solo se te ocurre preguntarle eso a Z?

Vay tela. Deberias descansar por que em da a mi que trabajas demasiado

Unknown dijo...

Bueno, interesante tema acerca de funciones "random", todo lo que uds dicen es teoria acerca de las mismas, pero cual sería la práctica?, por ejemplo crear métodos para obtener la semilla de una máquina ruleta? :)