gpt4 book ai didi

C++:实现 ln(a) 的数值近似

转载 作者:行者123 更新时间:2023-12-01 14:18:13 33 4
gpt4 key购买 nike

我要实现公式:

enter image description here

#include <iostream>
#include <cmath>
#include <limits>

using namespace std;

int main(){
double a, eps = numeric_limits<double>::epsilon();
cout << "a=";
cin >> a;
double w = sqrt(a), prod = 1 + w;
int n = 1;
do {
w = sqrt(w);
prod *= 1 + w;
cout << "ln(" << a << ")=" << ldexp(a-1, n)/prod << endl;
n++;
} while(abs(w - 1) > eps);

return 0;
}

但是例如ln(2.78787)=0.512639 这不可能是真的。哪里错了?

最佳答案

循环的初始条件是关闭的。开始于

double w = a, prod = 1;

程序会生成 expected results

关于C++:实现 ln(a) 的数值近似,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63218303/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com