Cool C/C++

Programacion en C/C++

Home Foros
Bienvenido, Invitado
Por favor Identificarse o Registrarse.    Contraseña olvidada?

error al hallar desviacion con dev c++
(1 viendo) (1) Invitado
AbajoPágina: 1
TEMA: error al hallar desviacion con dev c++
#149
error al hallar desviacion con dev c++ Creado el día: 26/08/2011 17:38 Karma: 0
hola hice un programa para calcular pi con el metodo montecarlo pero ahora quiero guardar los numeros aleatorios que se generan en un arreglo, esto con el fin de escoger los mayores a 3.0 y con ellos hallar la media, el problema es que no se como hacer esto???, por otro lado el programa no me esta calculando bien la desviacion y la varianza alguien me puede ayudar con este calculo, pues los vlrs que me generan en la desviacion y varianza son muy altos y no pueden ser tan grandes... ayuda
#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();
marijó
Navegador Iniciado
Mensajes: 2
graphgraph
Usuario Offline Presiona aquí para ver el perfil de este usuario
Última edición: 29/08/2011 13:58 por marijó.
El administrador ha deshabilitado la escritura pública.
 
#153
Re: error al hallar desviacion con dev c++ Creado el día: 30/08/2011 13:29 Karma: 2
Puedes declarar un arreglo:

double valores[10];
int k=0;


E irlo llenado:

if(pi>=3.0){
valores[k] = pi;
k++



Luego la media sería algo así:

suma = 0;
 
for(int i=0; i<k; i++)
suma += valores[i];
 
media = suma / k;



Tienes ejemplos de como sacar media, mediana, moda en la sección Fuentes / Matemáticas
adrianvaca
Administrador
Mensajes: 110
graph
Usuario Offline Presiona aquí para ver el perfil de este usuario
El administrador ha deshabilitado la escritura pública.
El conocimiento es una forma de empezar a ser libre
 
ArribaPágina: 1
obtén los últimos mensajes directamente en tu escritorio