| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
kiara_luna
Registrado: 13 Ago 2011 Mensajes: 6
| Publicado: 13/08/2011 12:53 pm | | | Título: ayuda con generar el # ? con el metodo de mntekrlo |
| hola hice el siguiente programa para generar el numero pi de forma aleatoria, el funcionamiento que trate de hacer es como el de los dardos al tiro al blanco y entre mas dardos dentro del ciruclo más cerca del numero pi, pero no se si el procedimietno que aplique es el mismo de montecarlo o no, y si no lo es entonces como sería con dicho metodo, por otro lado cuando trato de hacerlo con cout y cin no funciona asi use #include <iostream.h> ó #include <iostream> using std::cout; using std::cin; ayuda!!!! #include <stdio.h> #include <conio.h> otra pregunta puedo graficar este procedimiento con dev c++ void calculodepi(void); main() { //textcolor(9); printf("\n Este programa calcula pi \n\n\n"); char seleccion; do{ fflush(stdin);/*borra las variables en la memoria*/ // textcolor(5); printf("1.presionar c para comensar:\n"); printf("2.presionar s para salir:\n\n"); seleccion=getchar();
switch(seleccion){ case 'c':calculodepi(); /*llama a la funcion*/ break; } } while(seleccion!='s'); }
void calculodepi(void) /*FUNCION REALISA EL CALCULO ITERATIVO*/ { double pii=1,salida,errora; /*define las variables*/ int contador=1,numero; char signoa=1;
//textcolor(6); printf("ingresa el numero de iteraciones: "); scanf("%d",&numero); for (contador=1;contador<numero;contador++){ /*realiza el procedimiento iterativo*/
double incremento,suma; incremento=(2*contador+1);
incremento=1/incremento; incremento*=signoa; suma=pii-incremento; errora=sqrt(4*incremento*incremento); pii=suma; signoa*=(-1); }
salida=4*pii;
FILE *archivo;/*guarda los datos en un txt*/ if (!(archivo=fopen("datos.txt","a"))) /* controlamos si se produce un error */ { printf("Error al abrir el fichero"); exit(0); /* abandonamos el programa */ } else { fprintf(archivo,"pi=%20.12Lf error=%e\n",salida,errora); fclose(archivo); } //textcolor(2); printf("pi vale %20.14Lf\n",salida); printf("el error relativo es %e\n\n",errora); getch();
} _________________ kiara_luna |
| | Volver arriba | |  | kiara_luna
Registrado: 13 Ago 2011 Mensajes: 6
| Publicado: 29/08/2011 2:25 pm | | | Título: error en hallar media |
| hola ya fui capaz de hallar pi con el metodo montecarlo, el problema ahora es que no me esta hallando bien la media pues tiene que darme un valor igual o mayor a 3.0, y en la desviacion me esta dando muy alto 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("pi es %lf\n", pi); printf("La media es %lf\n", media); printf("la varianza vale %20.14Lf\n",varianza); printf("la desviacion vale %20.14Lf\n",desviacion); getch();
} _________________ kiara_luna |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |