#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define M_PI 3.14159265

double true_area() {
    return 9.0;
}

int main() {
    double x, y, s, r = 1.0;
    int n, m;
    double area_true = true_area();

    for (n = 10; n <= 100000; n *= 10) {
        s = 0.0;

        for (m = 0; m < n; m++) {
            x = (double)rand() / RAND_MAX * 2.0 - 1.0;
            y = (double)rand() / RAND_MAX * 2.0 - 1.0;

            if ((x * x + y * y <= r * r) && 
                (x - 1.0) * (x - 1.0) + y * y <= r * r && 
                (x * x + (y - 1.0) * (y - 1.0)) <= r * r &&
                ((x - 1.0) * (x - 1.0) + (y - 1.0) * (y - 1.0)) <= r * r) {
                s += 1.0;
            }
        }

        double area_estimated = (s / n) * 4.0;
        double error = fabs(area_estimated - area_true);

        printf("n = %d, 誤差 = %f\n", n, error);
    }

    return 0;
}
