se puede saber el significado o incluso la forma de leer esto:srandom (time (NULL))
srandom(time(NULL))?
se puede saber el significado o incluso la forma de leer esto:srandom (time (NULL))
srandom(time(NULL))?
El significado es inicializar la semilla aleatoria con la hora actual. time (NULL) devuelve la hora actual. srandom() inicializa la semilla aleatoria.
srandom
es una función que inicializa el generador de números aleatorios.
Se necesita un valor de semilla, que en este código es time(NULL)
, que es la hora actual.
Esto se lee, "srandom de tiempo de nula".
NULL
Un puntero nulo. Cero. Apunta a nada
time(NULL)
La función time
devuelve la fecha y hora actual como un entero. Acepta un argumento de entrada. Si el argumento no es nulo, la hora actual se almacena en él.
srandom(time(NULL))
El s
significa "semilla". srandom
significa "sembrar el generador de números aleatorios". Toma un entero como entrada, restablece el estado interno del PRNG derivado por la entrada para generar una secuencia de números aleatorios de acuerdo con él. La semilla a veces se usa para asegurar que 2 secuencias de números aleatorios sean iguales, para reproducir una condición de prueba equivalente.
En general, sólo hay que poner algún valor siempre cambiando allí para evitar que la misma secuencia cada vez que se inicia el programa. La marca de tiempo actual es un buen valor, por lo time(NULL)
se utiliza como la entrada.
Si la siembra basada en el tiempo es una buena idea depende de la aplicación, aunque probablemente solo los tipos de seguridad lo desaprobarían seriamente, y supongo que no usarían números aleatorios de biblioteca estándar. – Steve314
time() siempre devuelve la hora actual. Si el argumento no es NULO, la hora actual también se almacenará en ese puntero. Dado que siempre se devuelve de todos modos, la forma de tiempo (NULL) es bastante común. Buena explicación sin embargo :) –
inicializar una función aleatoria() con una semilla. En este caso, la semilla es la hora actual. – tur1ng
Podría decir nada, ya que no hay una función llamada "srandom" en el lenguaje C. (¿Creo que es una función POSIX?) La función estándar se llama 'srand'. – Lundin