Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <time.h>
- #ifndef RAND_MAX
- #define RAND_MAX 2147483648
- #endif
- #define N 420000
- double* rdm_X(void);
- double* rdm_Y(void);
- double* rdm_Z(void);
- void main(void)
- {
- double* Random_number_list_X = rdm_X();
- double* Random_number_list_Y = rdm_Y();
- double* Random_number_list_Z = rdm_Z();
- double X[N+1], Y[N+1], Z[N+1], density = 1, vol = 42.0;
- double sum = 0, sum_x = 0, sum_y = 0, sum_z = 0;
- int i;
- for (i = 0; i <= N; i++) {
- X[i] = 3 * Random_number_list_X[i] + 1;
- Y[i] = 7 * Random_number_list_Y[i] - 3;
- Z[i] = 2 * Random_number_list_Z[i] - 1;
- if ((Z[i]*Z[i]) + (sqrt(X[i]*X[i] + Y[i]*Y[i]) - 3)*(sqrt(X[i]*X[i] + Y[i]*Y[i]) - 3) <= 1) {
- sum += density;
- sum_x += X[i] * density;
- sum_y += Y[i] * density;
- sum_z += Z[i] * density;
- }
- }
- printf("(%.5lf, %.5lf, %.5lf)\n",
- sum_x/sum, sum_y/sum, sum_z/sum);
- }
- double* rdm_X(void)
- {
- double* Random_number_list_X = calloc(N + 1, sizeof(double));
- int i;
- srand(time(NULL));
- for (i = 1; i <= N; i++) {
- Random_number_list_X[i] = (float) rand() / (float) RAND_MAX;
- }
- return Random_number_list_X;
- }
- double* rdm_Y(void)
- {
- double* Random_number_list_Y = calloc(N + 1, sizeof(double));
- int i;
- sleep(1);
- srand(time(NULL));
- for (i = 1; i <= N; i++) {
- Random_number_list_Y[i] = (float) rand() / (float) RAND_MAX;
- }
- return Random_number_list_Y;
- }
- double* rdm_Z(void)
- {
- double* Random_number_list_Z = calloc(N + 1, sizeof(double));
- int i;
- sleep(2);
- srand(time(NULL));
- for (i = 1; i <= N; i++) {
- Random_number_list_Z[i] = (float) rand() / (float) RAND_MAX;
- }
- return Random_number_list_Z;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement