rand

De cppreference.com
< cpp
Saltar a: navegación, buscar

Sintaxis:

    #include <cstdlib>
    int rand( void );

La función rand() returna un valor entero pseudoaleatorio entre cero (0) y el valor predefinido RAND_MAX.

[editar] Ejemplo

     srand( time(NULL) );
     for( i = 0; i < 10; i++ )
       printf( "Random number #%d: %d\n", i, rand() );
!: **Nota técnica**: aunque hay maneras de acotar el rango retornado por rand(), muchos de estos métodos no producirán una distribución uniforme. Por ejemplo, usar simplemente el operador módulo (%) y escalar el valor retornado utilizando división en punto flotante.

El siguiente algoritmo puede ser utilizado para acotar el valor retornado por rand() con distribución uniforme en el rango [0...limit):

    // Assumes limit <= RAND_MAX
    int randomNumber(int limit)
    {
        unsigned int n;
        unsigned int mask = 0xFFFFFFFF;
 
        while(mask > limit * 2) mask >>= 1;
 
        do {
            n = rand();
            n &= mask;
        } while (n >= limit);
 
        return n;
    }

[editar] Tópicos Relacionados

  • srand -- inicializar el generador utilizado por rand
Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas
Otros idiomas