円周率の計算方法
### マチンの公式
π/4 = 4Arctan*1/5 – Arctan*1/239
これをコーディングすると
#include <stdio.h> #include <math.h> int main(void){ double pi; pi = (4 * atan(1/5) - atan(1/239)) / 4; printf("%lf\n", pi); return 0; }
$ ./main
0.000000
あれ?? 何故?
### 22/7、355/113、428224593349304/136308121570117
#include <stdio.h> #include <math.h> int main(void){ double pi1, pi2, pi3; pi1 = 22.0/7.0; pi2 = 355.0/113.0; pi3 = 428224593349304.0/136308121570117.0; printf("%lf\n", pi1); printf("%lf\n", pi2); printf("%lf\n", pi3); return 0; }
$ ./main
3.142857
3.141593
3.141593
22/7で計算すると、int型で3.000000になってしまう
### モンテカルロ法
#include#include #include int main(void){ int j, jmax = 100000000; int Ni; double x,y,max,pi; max = (double)RAND_MAX; srand(time(NULL)); for(j=0, Ni=0; j $ ./main
3.141687円周率、侮ってた、奥が深い