¿Números aleatorios en php? rand, srand, mt_rand mt_srand

Como va lechugas?

Por aquí dándolo todo para ofreceros lo mejor.

En Freshware, estos días, hemos estado hablando sobre la generación de números aleatorios. Así que de eso va a versar lo siguiente.

Si sois como nosotros, es probable que en otros tiempos vierais que PHP tiene una función de generación de números aleatorio llamada rand().

También es probable que lo almacenarais en vuestra memoría y lo dejaráis así.

El motivo es obvio: ¿Por qué  un lenguaje de programación necesitaría mas de una función para generar números aleatorios?

Bueno. Pues por lo que parece, los creadores de PHP decidierón que una sola función de números aleatorios no era suficiente. Por lo visto decidieron dejar rand() para la plebe (exacto! si usas rand() perteneces al estrato social más bajo!)

[code sourcecode=”php”]
echo rand(0, 99999);
[/code]

Para los programadores más curiosos inventaron una divertida función llamada srand() la cual, en la medida de lo que puedo decir, actúa como la máquina de la lotería (yo me la imagino con las bolas dando vueltas por dentro ^_^). Es decir, que es un aleatorio más cercano a la realidad:

[code sourcecode=”php”]
srand((double)microtime()*1000000);

echo rand(0, 999999);
[/code]

Ahora mismo, muchos de los desarrolladores estarán dando saltos de alegría al conocer una forma razonable de generar aleatorios. Pero suponemos que un verdadero experto de php necesita más.

Para ellos existe la magnifica mt_rand() !

Esta función es fuerte, rápida y tiene la presencia de un dios griego. Y mientras la función rand() sólo podía enviar números aleatorios entre 0 y  32767, mt_rand() puede hacer un verdadero trabajo de lifting, con el mejor acabado, al mundo de la generación de aleatorios: genera números entre 0 y 2147483647. Vamos, que todo el que hasta ahora haya estado usando sólamente rand(), debería de estar llorando como una niña después de que le hayan quitado su juguete favorito.

[code sourcecode=”php”]
echo mt_rand(0, 99999);
[/code]

Pero todavía se pone peor, chic@s.

Por si mt_rand() sola no fuese suficiente, para el super geek freak cabrón toca pelotas sin amigos, ese que necesita algo más para poder seguir sentado enfrente del ordenador, existe: mt_srand() !!!

Algunos dicen que los números simplemente se caen de la existencia misma, cuando este bebé se pone en movimiento. Otros creen que en realidad podría abrir un agujero negro. En realidad no se sabe porque nadie ha querido probarlo aún!

[code sourcecode=”php”]
mt_srand((double)microtime()*1000000);

echo mt_rand(0, 100);
[/code]

Bueno, aquí tenéis los códigos. Usadlos con cuidado. Pensad que hay cosas que no se deben de conocer. No todo el mundo es Son Goku o el Caballero de Pegaso, como para querer controlar cosas fuera de nuestro alcance…

XD

 

Y recordad que si quereis contar con nosotros para realizar vuestra página web podeis poneros en contacto con nosotros en:

www.freshware.es

6 comentarios en “¿Números aleatorios en php? rand, srand, mt_rand mt_srand

Deja un comentario