Pi berech. + mittlere Abweich. < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 04:57 Mi 19.04.2017 | Autor: | Kian |
Aufgabe | https://postimg.org/image/m6mfj5gi3/
(Aufgabe besteht aus 2 Seiten!) |
Ich soll die mittlere Abweichung zu Pi berechnen.
Habe folgendes programmiert, bin mir aber sehr unsicher ob das stimmt.
Kann jemand vllt. grob drueberschauen ob ich die Aufgabe richtig verstanden und auch gelöst habe?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
double PI = 3.1415926535;
/* liefert Pseudozufallszahl double-Zahl aus dem Intervall [0.0,1.0] */
double randomDouble(){
int rI = rand() % RAND_MAX ;
double rD = (double) rI / (RAND_MAX - 1);
return rD;
}
/* Aufgabenteil (a) */
float approximatePI(int n){
double xy[n][2];
int cntr =0;
for(int i=0; i<n; i++){
for(int k=0; k<2; k++){
xy[i][k] = randomDouble();
}
}
for(int i=0; i<n ;i++){
if(pow(xy[i][0],2)+pow(xy[i][1],2) <= 1.0){
cntr++;
}
}
return 4*(cntr/(float)n);
}
void averagePi(int k, int n){
float pis[k];
float xquer =0;
float sum =0 ;
float avg = 0;
for(int i=0; i<k; i++){
pis[i] = approximatePI(n);
xquer = xquer + pis[i];
}
xquer = xquer/k;
for(int i=0; i<k; i++){
sum = sum + pow((pis[i] - xquer),2);
}
avg = sqrt(sum/(k-1));
[mm] printf("%f\n", [/mm] avg);
}
/* Aufgabenteil (b) */
int main(){
/* Zufallszahlengenerator initialisieren */
srand (time(NULL));
/* Aufruf ergaenzen */
averagePi(15,9999);
return EXIT_SUCCESS;
}
Lg
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 05:20 Fr 21.04.2017 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|