El c ++ generador de números aleatorios
Generadores de números aleatorios cumplen un número de propósitos. Todo, desde los juegos de simulaciones requieren un generador de números aleatorios para que funcione correctamente. La aleatoriedad encuentra su camino en los negocios escenarios hipotéticos también. En resumen, es necesario añadir la salida al azar para su aplicación en muchas situaciones.
Creación de un número al azar no es difícil. Todo lo que necesitas hacer es llamar a una función de números aleatorios como se muestra en la Generador de números al azar ejemplo:
#includemain () {// establecer siempre una value.srand semilla #include #include using namespace std-int ((unsigned int) Tiempo (NULL)) - int RandomValue = rand ()% 12-cout lt; lt; "El número de meses al azar es:" lt; lt; RandomValue + 1 lt; lt; endl retorno 0-}
En realidad, no es uno de los generadores de números aleatorios en la Biblioteca Estándar funciona correctamente - imagine eso! Ellos son todos pseudoaleatorio generadores de números: Los números se distribuyen de tal manera que parece que se ve una secuencia aleatoria, pero teniendo en cuenta el tiempo y la paciencia suficiente, al final de la secuencia se repite.
De hecho, si no se establece un valor inicial para el generador de números aleatorios, puede obtener secuencias predecibles de los números cada vez. Qué aburrido. Aquí está la salida típica de este ejemplo:
El número de meses al azar es: 7
La primera línea de código en main () establece la semilla mediante el uso de la hora del sistema. El uso de la hora del sistema asegura un cierto nivel de aleatoriedad en el valor de partida - y por lo tanto un nivel de aleatoriedad para su aplicación en su conjunto. Si usted comenta a cabo esta línea de código, verá el mismo resultado cada vez que se ejecuta la aplicación.
Los usos ejemplo de aplicación rand () para crear el valor aleatorio. Cuando usted toma el módulo del número al azar, se obtiene una salida que está dentro de un rango específico - 12 en este caso. El ejemplo termina añadiendo 1 al número aleatorio porque no hay ningún mes 0 en el calendario, y luego envía el número de meses para usted.
La biblioteca estándar proporciona acceso a dos tipos de generadores de números pseudoaleatorios. El primer tipo requiere que establezca un valor semilla. El segundo tipo requiere que proporcione un valor de entrada con cada llamada y no requiere de un valor de la semilla. Cada generador emite un tipo de datos diferente, para que pueda elegir el tipo de números aleatorios que obtenga.
La tabla muestra los generadores de números aleatorios y te dice qué tipo de datos se salida.
Función | Tipo de salida | Semilla requerida? |
---|---|---|
rand | entero | sí |
drand48 | doble | sí |
erand48 | doble | no |
lrand48 | largo | sí |
nrand48 | largo | no |
mrand48 | firmado larga | sí |
jrand48 | firmado larga | no |
Ahora que usted sabe acerca de los generadores de números pseudoaleatorios, mira las funciones de semillas utilizadas a ellos primero. La siguiente tabla muestra las funciones de semillas y sus funciones número de generadores pseudoaleatorios asociado.
Función | Función Número de Associated Pseudorandom Generador |
---|---|
srand | rand |
srand48 | drand48 |
seed48 | mrand48 |
lcong48 | lrand48 |