Random

De Wiki del curso de C
Saltar a: navegación, buscar

Podeis usar las funciones rand, srand y time para inicializar vuestro mundo con células con posiciones aleatorias.

La función int rand() devuelve un número distinto "aleatorio" cada vez que la llamamos. Sin embargo, podreis comprobar que siempre devuelve la misma secuencia de números, esto es porque se genera mediante un algorito matemático en base a un número inicial: semilla. Mientras esta semilla sea la misma, siempre generará la misma secuencia. Lo que se suele hacer es establecer la semilla con la hora del sistema (en segundos desde el Jueves 1 de Enero de 1970) al iniciar la ejecución del programa, de esta forma, cada vez que se ejecuta devolverá una secuencia aleatoria distinta.


Aquí podemos ver un ejemplo de uso de la función rand() (ver ejecución):

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <time.h>
 4 
 5 float frand()
 6 {
 7     return (float)rand()/RAND_MAX;
 8 }
 9 
10 int rrand(int from, int to)
11 {
12     return rand()%(to - from + 1) + from;
13 }
14 
15 int main(void)
16 {
17     int i;
18 
19     srand(time(0)); //use current time as seed for random generator
20     
21     for (i = 10; i > 0; i--)
22         printf("frand = %f\trrand = %d\n", frand(), rrand(3, 15));
23 
24     return 0;
25 }

Más información: http://en.cppreference.com/w/c/numeric/random/rand