viernes, 1 de julio de 2011

Puntos para Lenguaje ANSI C

Comandos rand y srand

La función rand  permite generar números enteros pseudo-aleatorios


rand: generador de números aleatorios.
Sintaxis:
int rand(void); 
La función rand devuelve un número aleatorio entre 0 y RAND_MAX. La constante RAND_MAX está definida en stdlib.h.
Valor de retorno:
rand devuelve un número entre 0 y RAND_MAX.



srand Inicializa el generador de números aleatorios.
Sintaxis:
void srand(unsigned semilla);
La función srand sirve para cambiar el origen del generador de números aleatorios.
Valor de retorno:
srand no devuelve ningún valor.

A continuacion podemos ver un programa en C para generar numero aleatorios.

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

int main () 
{

        int i, n, aleatorio, P, U;

        srand(time(NULL));
        
        scanf("%d", &n);
        
        for (i = 0; i < n; i ++) 
        {
            aleatorio = P+(int)(((U-P+1.0)*rand())/(RAND_MAX+1.0))
            printf("%d ", aleatorio);
        }
        
        return 0;
 
 Bibliografia:
http://arantxa.ii.uam.es/~swerc/ole/ejemplos/crandom.html
http://c.conclase.net/curso/?cap=902d#lib_srand 
y apuntes de clase 
 

2 comentarios:

  1. Hola,

    Creo que nos diste un muy buen ejemplo. Me gustaría agregar un poco más acerca de el porqué los números generados por estas funciones son considerados como "pseudo aleatorios". Esto se debe a que para ser generados, se utilizó un proceso conocido como determinista, es decir, un proceso que permitiría obtener la misma secuencia de números en algún otro momento. Para que un conjunto de valores pueda ser considerado como verdaderamente aleatorio, su secuencia debe ser generada mediante un proceso no determinista, es decir, no se debe poder generar dicha secuencia en algún otro momento. Para lograr producir un conjunto de números propiamente aleatorios, existen programas que toman como base fenómenos tales como las variaciones de la presión atmosférica o el momento en que se deteriora una sustancia radioactiva. Estos fenómenos tienen como característica que no son predecibles, por lo que son muy buenas referencias para tomarlos como generadores de números aleatorios.

    Referencia:
    Random.org
    http://www.random.org/randomness/

    ResponderEliminar
  2. Bien; 4 a Humberto por la entrada y 2 a Mariana por su comentario.

    ResponderEliminar