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! :)