No dudes en compartir nuestro sitio y códigos con tus amigos, ayúdanos a aumentar esta comunidad.
Definido en el encabezado
|
||
---|---|---|
voidsrand(unsigned seed ); |
Inicia el generador de números pseudoaleatorios utilizado por rand()
con el valor seed
.
Si rand()
se utiliza antes de cualquier llamada a srand()
, rand()
se comporta como si estuviera sembrado con srand(1)
.
Cada vez rand()
se siembra con el mismo seed
debe producir la misma secuencia de valores.
srand()
no se garantiza que sea seguro para subprocesos.
Parámetros
semilla | – | el valor de la semilla |
Valor de retorno
(ninguna).
notas
En términos generales, el generador de números pseudoaleatorios solo debe sembrarse una vez, antes de cualquier llamada a rand()
, y el inicio del programa. No se debe sembrar repetidamente ni volver a sembrar cada vez que desee generar un nuevo lote de números pseudoaleatorios.
La práctica estándar es usar el resultado de una llamada para time(0)
como la semilla. Sin embargo, time()
devuelve un time_t
valor, y time_t
no se garantiza que sea un tipo integral. En la práctica, sin embargo, cada implementación importante define time_t
ser un tipo integral, y esto es también lo que requiere POSIX.
Ejemplo
#include#include #include intmain(void)srand(time(0));//use current time as seed for random generatorint random_variable =rand();printf("Random value on [0,%d]: %dn", RAND_MAX, random_variable);
Salida posible:
Random value on [02147483647]:1373858591
Referencias
- Estándar C11 (ISO/IEC 9899:2011):
- 7.22.2.2 La función srand (p: 346-347)
- Norma C99 (ISO/IEC 9899:1999):
- 7.20.2.2 La función srand (p: 312-313)
- Estándar C89/C90 (ISO/IEC 9899:1990):
- 4.10.2.2 La función srand
Ver también
rand | genera un número pseudoaleatorio (función) |
RAND_MAX | valor máximo posible generado por rand() (macro constante) |
Si tienes algún recelo y capacidad de avanzar nuestro noticia eres capaz de escribir una interpretación y con deseo lo estudiaremos.