圖1是題,圖2是要求。。。跪求大佬幫忙

uj5u.com熱心網友回復:
#include <iostream>
#define N 1000
class Aintegral {
protected:
int n;
public:
Aintegral(int n):n(n){}
virtual double integral(double min, double max) = 0;
};
class Xintegral : public Aintegral {
private:
Aintegral& next;
double fx(double x) {
return x;
}
public:
Xintegral(int n, Aintegral& next):Aintegral(n), next(next){}
double integral(double min, double max){
double result = 0;
double delta = (max - min) / n;
for (double i = min+delta; i < max; i+=delta) {
result += fx(min+i)*delta*next.integral(0, min+i);
}
return result;
}
};
class Yintegral : public Aintegral {
private:
Aintegral& next;
double fx(double y) {
return y*y;
}
public:
Yintegral(int n, Aintegral& next):Aintegral(n), next(next){}
double integral(double min, double max){
double result = 0;
double delta = (max - min) / n;
for (double i = min+delta; i < max; i+=delta) {
result += fx(min+i)*delta*next.integral(0, (min+i)*max);
}
return result;
}
};
class Zintegral : public Aintegral {
private:
double fx(double z) {
return z*z*z;
}
public:
Zintegral(int n):Aintegral(n){}
double integral(double min, double max){
double result = 0;
double delta = (max - min) / n;
for (double i = min+delta; i < max; i+=delta) {
result += fx(min+i)*delta;
}
return result;
}
};
int main(int argc, const char * argv[]) {
Zintegral z = Zintegral(N);
Yintegral y = Yintegral(N, z);
Xintegral x = Xintegral(N, y);
double result = x.integral(0, 1);
std::cout << "result : " << result << std::endl;
//result : 0.00272932
std::cout << "1/364 : " << (double)1/364 << std::endl;
//1/364 : 0.00274725
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/21100.html
標籤:基礎類
上一篇:用Python如何實作啊,嗚嗚嗚,Python小白在線求救
下一篇:如何獲取私彩大小單雙資料
