Cómo funciona realmente rand()?

Discusión en general sobre Gemix.
Post Reply
User avatar
DoZ
Posts: 416
Joined: Thu Apr 08, 2010 11:16 pm
Location: Buscando el Big Whoop

Cómo funciona realmente rand()?

Post by DoZ »

Buenas! No sabía dónde poner esto, pues es una duda, pero tampoco es que necesite ayuda ni dependa de entenderlo, pero es que me lo llevo preguntando hace unos días, y tras buscar un poco en Google ahora mismo, no me ha quedado muy claro. Tengo entendido que en C y en la mayoría de los lenguajes, se usan divisiones con decimales, y de ahí se obtiene el rand o la base para obtenerlo. En esencia, que son seudo-randoms, pues no existe el azar absoluto en computación, o eso decía otro.

También he leído que hay funciones de random que siempre repiten la cadena de valores y otros que usan seeds para que esto no ocurra. Cuál es el caso de Gemix? Supongo que se limita a utilizar alguna función en C/C++, pero me encantaría conocer (dentro de mis limitadas posibilidades) un poco más acerca de esto.

Un saludo!
User avatar
CicTec
Posts: 16590
Joined: Thu Jul 31, 2008 10:18 pm

Re: Cómo funciona realmente rand()?

Post by CicTec »

Hola DoZ,

He movido el hilo en un lugar mas adecuado.

Pues, como has dicho, el RAND generalmente genera numeros pseudo-casuales, y puede haber varias implementaciones, utilizando funciones standard de la libreria de C, o implementando otros algoritmos.

Gemix utiliza el segundo caso, tambien depende de la semilla que el algoritmo genera, de conseguencia, si la semilla es la misma, el algoritmo generara siempre la misma secuencia de pseudo-casuales, obviamente esta se puede cambiar por la funcion RAND_SEED.
User avatar
DoZ
Posts: 416
Joined: Thu Apr 08, 2010 11:16 pm
Location: Buscando el Big Whoop

Re: Cómo funciona realmente rand()?

Post by DoZ »

Es decir, que cada vez que se compila un programa, se genera una semilla, y no cambia a no ser que se lo indiques con la función RAND_SEED?
User avatar
CicTec
Posts: 16590
Joined: Thu Jul 31, 2008 10:18 pm

Re: Cómo funciona realmente rand()?

Post by CicTec »

Exacto, o sea modificada por algun factor externo (SO, etc.. aunque poco probable).
User avatar
SimulatorOne
Posts: 6626
Joined: Tue Nov 17, 2009 2:52 pm
Location: Barcelona
Contact:

Re: Cómo funciona realmente rand()?

Post by SimulatorOne »

Juraría que la semilla aleatoria la coge de la fecha y hora del sistema operativo.
Ya se habló de algún caso de que siempre daba la misma secuencia de número y la causa es que la hora y fecha era la misma, no se si el bug venía de linux.

Esta bien usar Rand seed para dar exactamente la misma secuencia de números rands, si te interesa

Normalmente no se suele usar la función de rand seed, interesa que siempre de números diferentes en cada ejecución del juego. Crea dinamismo diferente cada partida o comportamiento, es algo que a mi me gusta mucho.
Post Reply

Return to “General”