/* error_zeta1.c 積み残し現象 1/1 + 1/2 + 1/3 + ... は無限大だが ... */ #include int main() { int c = 0, i = 0; float x = 0.0, y = -1.0; while(x != y){ i++; c++; y = x; x += 1.0 / i; if(c == 100000){ printf("1/1 + 1/2 + ... + 1/%7d = %9.6f\n", i, x); c = 0; } } printf("ここから先は和の値が増えなくなりました:\n", i); printf("1/1 + 1/2 + ... + 1/%7d = %9.6f\n", i, x); } /* 1/1 + 1/2 + ... + 1/ 100000 = 12.090851 1/1 + 1/2 + ... + 1/ 200000 = 12.782757 1/1 + 1/2 + ... + 1/ 300000 = 13.195325 1/1 + 1/2 + ... + 1/ 400000 = 13.481427 1/1 + 1/2 + ... + 1/ 500000 = 13.690692 1/1 + 1/2 + ... + 1/ 600000 = 13.881427 1/1 + 1/2 + ... + 1/ 700000 = 14.071256 1/1 + 1/2 + ... + 1/ 800000 = 14.166623 1/1 + 1/2 + ... + 1/ 900000 = 14.261991 1/1 + 1/2 + ... + 1/1000000 = 14.357358 1/1 + 1/2 + ... + 1/1100000 = 14.452725 1/1 + 1/2 + ... + 1/1200000 = 14.548093 1/1 + 1/2 + ... + 1/1300000 = 14.643460 1/1 + 1/2 + ... + 1/1400000 = 14.738828 1/1 + 1/2 + ... + 1/1500000 = 14.834195 1/1 + 1/2 + ... + 1/1600000 = 14.929563 1/1 + 1/2 + ... + 1/1700000 = 15.024930 1/1 + 1/2 + ... + 1/1800000 = 15.120297 1/1 + 1/2 + ... + 1/1900000 = 15.215665 1/1 + 1/2 + ... + 1/2000000 = 15.311032 ここから先は和の値が増えなくなりました: 1/1 + 1/2 + ... + 1/2097152 = 15.403683 */