有关精度问题?
  • 板块学术版
  • 楼主纯白
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/10/29 00:14
  • 上次更新2023/10/27 05:17:10
查看原帖
有关精度问题?
327139
纯白楼主2022/10/29 00:14

)

如题,

#include <iostream>
#include <cmath>
using namespace std;

double f(double x)
{
    if (x == 0)
        return log(6.0/5);
    else return 1/x  - 5*f(x-1);
}

int main ()
{
    for (int i = 0; i <= 30; ++i)
        cout << f(i) << endl;
    return 0;
}

采用这种方法算出来-36668.8

答案给的是0.0054046330

使用py反过来推

import math
a=0.0054046330
n=30
for i in range(1,31):
  a=(-a+1/n)/5
  n-=1
print(a)
print(math.log(6/5))

能得到正确答案(事实上,代上面的递归答案也可以得到ln的值

感觉浮点数精度问题好复杂

求大佬解答其中疑惑

2022/10/29 00:14
加载中...