#include <stdio.h>
int main(){
unsigned int i;
unsigned int N = 32;
for( i=1 ; i<=N ; i++ ){
unsigned int j;
double iInv = (double)1 / (double)i;
double Sum = 0;
for( j=1 ; j<=i ; j++ ){
Sum += iInv;
}
double Delta = Sum - (double)1;
if( Delta ){
printf("%d\t%.100le",i,Delta);
}
}
return(1);
}
7 1 Σ --- = 1 j=1 7
というわけで理由を考えてみようと思う。まずは7を2進数であらわす。
7 = 4*1 + 2*1 + 1*1
7(10) = 111(2)
その次に7の逆数を作りたいんだけど。
0.1428571428...
-----------------
7 ) 1.000000000
0.000000000
---
1.0
0.7
----
0.30
0.28
-----
0.020
14
------
60
56
-------
40
35
--------
50
49
---------
10
7
----------
30
28
-----------
20
14
------------
60
56