| ![[K Wiki] [K Wiki]](k.jpg)  | math/03 のバックアップ(No.13) | 
円周と直径の比。もしくは、直径が1の円の円周。 3.1415926535 8979323846 2643383279 5028841971 6939937510 ...
A(0.4, 0.3) B(0.5, 0.3) D(0.4, 0.2) C(0.5, 0.2)
#include <stdio.h>
#define N 10
int main()
{
    int i, j, k, c[5];
    double x0, y0, x1, y1;
    for (k = 0; k < 5; k++)
        c[k] = 0;
    for (j = 0; j < N; j++) {
        y0 = (double) j / N;
        y1 = (double) (j + 1) / N;
        for (i = 0; i < N; i++) {
            x0 = (double) i / N;
            x1 = (double) (i + 1) / N;
            k = 0;
            if (x0 * x0 + y0 * y0 <= 1.0) k++;
            if (x1 * x1 + y0 * y0 <= 1.0) k++;
            if (x0 * x0 + y1 * y1 <= 1.0) k++;
            if (x1 * x1 + y1 * y1 <= 1.0) k++;
            c[k]++;
        }
    }
    for (k = 0; k < 5; k++)
        printf("c[%d]=%d\n", k, c[k]);
    return 0;
}c[0]=12, c[1]=5, c[2]=8, c[3]=6, c[4]=69
69+5*0.25+8*0.50+6*0.75=78.75
c[0]=2047, c[1]=58, c[2]=82, c[3]=59, c[4]=7754
c[0]=213614, c[1]=585, c[2]=828, c[3]=586, c[4]=784387 上限下限:3.137548〜3.145544, (25%〜75%で近似)=3.141547
c[0]=21450238, c[1]=5857, c[2]=8284, c[3]=5858, c[4]=78529763 上限下限:3.14119052〜3.14199048, (25%〜75%で近似)=3.14159051
| N=10 | N=100 | N=1000 | N=1万 | |
| 単純に足して2で割る | -0.00159265 | -0.00019265 | -0.00004665 | -0.00000215 | 
| 25%〜75%で近似 | +0.00840735 | -0.00009265 | -0.00004565 | -0.00000214 | 
| コメント | お名前 | NameLink | |