Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ayuda con generar numeros aleatorios y el metodo congruencia lineales

Estas en el tema de Ayuda con generar numeros aleatorios y el metodo congruencia lineales en el foro de C/C++ en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 23/05/2008, 17:29
 
Fecha de Ingreso: abril-2008
Mensajes: 19
Antigüedad: 16 años, 1 mes
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! :)
  #2 (permalink)  
Antiguo 26/05/2008, 18:16
Avatar de Mephisto  
Fecha de Ingreso: enero-2006
Ubicación: Mexico DF
Mensajes: 184
Antigüedad: 18 años, 4 meses
Puntos: 3
Respuesta: Ayuda con generar numeros aleatorios y el metodo congruencia lineales

No mencionas cual es el error que genera tu codigo, lo que si encontre es esto

Código:
if(pow((float), 0.5)<c);
{valido++;}
Si la intencion es que se incremente el contandor al cumplirse la condicion, como le dejas un ";" al final del if no estas condicionando el incremento del contador y no tiene utilidad tu If...
__________________
Saludos...

Todos somos sabios, solo que en diferentes disciplinas...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:03.