randrand

Genera un número pseudoaleatorios mediante un algoritmo conocido y totalmente reproducible.Generates a pseudorandom number by using a well-known and fully-reproducible algorithm. Hay disponible una versión más segura mediante programación de esta función; vea rand_s.A more programmatically secure version of this function is available; see rand_s. Los números generados por Rand no son seguros criptográficamente.Numbers generated by rand are not cryptographically secure. Para obtener una generación de números aleatorios criptográficamente segura, use rand_s o las funciones declaradas en la biblioteca estándar de C++ en <random> .For more cryptographically secure random number generation, use rand_s or the functions declared in the C++ Standard Library in <random>.

SintaxisSyntax

int rand( void );

Valor devueltoReturn Value

Rand devuelve un número pseudoaleatorios, tal como se ha descrito anteriormente.rand returns a pseudorandom number, as described above. No se devuelve ningún error.There's no error return.

ObservacionesRemarks

La función Rand devuelve un entero pseudoaleatorio en el intervalo de 0 a RAND_MAX (32767).The rand function returns a pseudorandom integer in the range 0 to RAND_MAX (32767). Utilice la función srand para inicializar el generador de números pseudoaleatorios antes de llamar a Rand.Use the srand function to seed the pseudorandom-number generator before calling rand.

La función Rand genera una secuencia conocida y no es adecuada para su uso como una función criptográfica.The rand function generates a well-known sequence and is not appropriate for use as a cryptographic function. Para obtener una generación de números aleatorios criptográficamente segura, use rand_s o las funciones declaradas en la biblioteca estándar de C++ en <random> .For more cryptographically secure random number generation, use rand_s or the functions declared in the C++ Standard Library in <random>. Para obtener información acerca de qué es el problema con Rand y cómo <random> aborda estas deficiencias, vea este vídeo titulado Rand considerado perjudicial.For information about what's wrong with rand and how <random> addresses these shortcomings, see this video entitled rand Considered Harmful.

De forma predeterminada, el ámbito de este estado global de esta función es la aplicación.By default, this function's global state is scoped to the application. Para cambiar esto, vea estado global en CRT.To change this, see Global state in the CRT.

RequisitosRequirements

RutinaRoutine Encabezado necesarioRequired header
randrand <stdlib.h>

Para obtener información adicional sobre compatibilidad, consulte Compatibilidad.For additional compatibility information, see Compatibility.

EjemploExample

// crt_rand.c
// This program seeds the random-number generator
// with the time, then exercises the rand function.
//

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

void SimpleRandDemo( int n )
{
   // Print n random numbers.
   int i;
   for( i = 0; i < n; i++ )
      printf( "  %6d\n", rand() );
}

void RangedRandDemo( int range_min, int range_max, int n )
{
   // Generate random numbers in the half-closed interval
   // [range_min, range_max). In other words,
   // range_min <= random number < range_max
   int i;
   for ( i = 0; i < n; i++ )
   {
      int u = (double)rand() / (RAND_MAX + 1) * (range_max - range_min)
            + range_min;
      printf( "  %6d\n", u);
   }
}

int main( void )
{
   // Seed the random-number generator with the current time so that
   // the numbers will be different every time we run.
   srand( (unsigned)time( NULL ) );

   SimpleRandDemo( 10 );
   printf("\n");
   RangedRandDemo( -100, 100, 10 );
}
22036
18330
11651
27464
18093
3284
11785
14686
11447
11285

   74
   48
   27
   65
   96
   64
   -5
  -42
  -55
   66

Consulte tambiénSee also

Compatibilidad de punto flotanteFloating-Point Support
srandsrand
rand_srand_s