Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/05/2008, 17:29
waneos
 
Fecha de Ingreso: abril-2008
Mensajes: 19
Antigüedad: 16 años, 9 meses
Puntos: 0
Ayuda con generar numeros aleatorios y el metodo congruencia lineales

Hola gente tengo un problemilla, tengo ke generar numeros aleatorios utilizando el metodo ongruencia lineales .

El programa tiene ke pedir la entrada de a,c,m y cuantos numeros kiero obtener y luego mostrarlo por pantalla (necesito este programa para luego hacer una integral por el metodo de monte carlo).


Aki tengo el codigo, no se ke le pasa :(

#include <stdio.h>
#include <stdlib.h>
#include "cabecera.h"
#include <math.h>
#define RNG_M 2147483647L /* m = 2^31 - 1 */


int main(int argc, char *argv[])
{

int dim, j, i, valido=0;
double a,c,m, aleatorio,numeros;
long int semilla, N;

printf("\n -> Introduce a: ");
scanf("%d",&a);
printf("\n -> Introduce c: ");
scanf("%lf",&c);
printf("\n -> Introduce la potencia de 10 como numero de puntos a generar: ");
scanf("%ld",&N);
N=pow(10,N);
printf("\n -> Introduce el valor de la semilla para el generador: ");
scanf("%ld",&m);

set_rnd_seed (m);

for (j=0;j<N;j++)
{
for (i=0;i<a;i++)
{
aleatorio=(((float)rnd()/RNG_M)*(2.0*c)-c);

}
if(pow((float), 0.5)<c);
{valido++;}
}
aleatorio =((float)valido/N)*pow(2*c,a);
printf("\nNumeros= %lf",aleatorio);

system("PAUSE");
return 0;
}


muchas gracias tios! :)