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

error al calcular la media y desviacion

Estas en el tema de error al calcular la media y desviacion en el foro de C/C++ en Foros del Web. hola hice un programa que calcule pi por el metodo de montecarlo, trate de hallar la media, la varianza y la desviacion de los numeros ...
  #1 (permalink)  
Antiguo 28/08/2011, 10:42
 
Fecha de Ingreso: abril-2011
Mensajes: 8
Antigüedad: 13 años
Puntos: 0
error al calcular la media y desviacion

hola hice un programa que calcule pi por el metodo de montecarlo, trate de hallar la media, la varianza y la desviacion de los numeros aleatorios generados, pero la media me da muy baja y la desviacion muy alta, hice un if para hallar la media a partir de los numeros mayores a 3.0 pero me sigue dando muy baja, me dijeron que para lo que quiero hacer tengo que guardar los numeros generados en un arreglo y de ahi escoger los mayores a 3.0 para hallar la media, pero la verdad nunca he trabajado con arreglos, alguien me puede explicar.. ayuda porfa.
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <conio.h>
#include <time.h>
int main()
{
int cantidad;
double x,y;
int i;
double z, contador=0;
double pi, media, suma, varianza, desviacion;

printf( "Cuantas iteracciones desea hacer: ");
scanf("%d",&cantidad);

srand(time(NULL));
for ( contador=0; contador<cantidad; contador++)
{
x = (double)rand()/RAND_MAX;
y = (double)rand()/RAND_MAX;
z = x*x+y*y;

if (z<=1)
{
contador++;
cantidad++;
pi=contador*4/cantidad;
suma = suma + pi;

if(pi>=3.0){

suma = suma + pi;
media = suma/(double)cantidad ;
varianza = ((suma - media)*(suma-media))/cantidad;
desviacion = sqrt(varianza); }
}
}


printf("La media es %lf\n", media);
printf("la varianza vale %20.14Lf\n",varianza);
printf("la desviacion vale %20.14Lf\n",desviacion);
getch();

}
  #2 (permalink)  
Antiguo 28/08/2011, 15:33
 
Fecha de Ingreso: marzo-2011
Mensajes: 94
Antigüedad: 13 años, 1 mes
Puntos: 3
Respuesta: error al calcular la media y desviacion

No inicializas la variable suma y el programa se vuelve loco. Cuando declaras suma haz:

Código C++:
Ver original
  1. double suma = 0.0;

Por cierto, encuadra el codigo con:

[HIGHLIGHT="code"][HIGHLIGHT="C++"]

asi es mas facil

un saludo!
  #3 (permalink)  
Antiguo 29/08/2011, 08:52
 
Fecha de Ingreso: abril-2011
Mensajes: 8
Antigüedad: 13 años
Puntos: 0
Respuesta: error al calcular la media y desviacion

hola karma, ni declarando double suma = 0.0; me halla bien la media, =(
  #4 (permalink)  
Antiguo 29/08/2011, 10:38
 
Fecha de Ingreso: marzo-2011
Mensajes: 94
Antigüedad: 13 años, 1 mes
Puntos: 3
Respuesta: error al calcular la media y desviacion

Cita:
Iniciado por kiara_luna Ver Mensaje
hola karma, ni declarando double suma = 0.0; me halla bien la media, =(
Ups perdon, no había leio bien la cosa :S si no declaras lo de suma ni siquiera funciona y solo me fije en eso jaja

Etiquetas: c++
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 13:22.