Justyna Benkowska
8 listopada 2006
1
Treść zadania
Niech będzie zadany zbiór R, który jest kulą w przestrzeni ( P esel[5] + 10 ∗
P esel[6]) wymiarowej o promieniu 1
. Obliczyć przybliżoną wartość P esel[10]+ P esel[11]
miary Lebesguea tego zbioru według algorytmu MC (Fishman str. 19). W
odpowiedzi należy podać 1. Pełny numer Pesel 2. Kod programu według algorytmu MC ze strony 19 Fishmana 3. Wektor dziesięciokrotnych obliczeń dla n = 107 każde. Wyniki podać w postaci dziesiętnej z pięcioma cyframi znaczcymi.
2
Odpowiedz
Ad. 1). 84120301687
Zatem wymiar przestrzeni m = 30, promień r = 1 . Przyjełam, że kula ma 15
środek w punkcie a = 1 , . . . , 1 .
2
2
1
#include<stdio.h>
#include<stdlib.h>
#include<math.h> float x[30];
int m=30;
int n=10000000;
float r=1/15;
float P[10];
float frand() { return (float) rand() / RAND_MAX;}
float suma(){
int j;
float b=0;
for(j=0;j<m;j++) b=b+pow(x[j]-(1/2),2); return b;
}
int main(){
int l;
for(l=0;l<10;l++){
int j=0;
int s=0;
int i=0;
while(j<n){
for(i=0;i<m;i++) x[i]=frand();
if(sqrt(suma())<r) s=s+1;
else s=s+0;
j++;
}
P[l]=(float)s/n;
printf("Przybliźone pole obszaru metoda MC w obliczeniu nr %d wynosi P%d= %.5f\n",l+1,l+1, P[l]);
}
return 0;
}
2
P[1] = 0.00000
P[2] = 0.00000
P[3] = 0.00000
P[4] = 0.00000
P[5] = 0.00000
P[6] = 0.00000
P[7] = 0.00000
P[8] = 0.00000
P[9] = 0.00000
P[10] = 0.00000
3