简单计算题
#include <iostream>
#include <iomanip> //setprecision 設置輸出精度
#include <cmath>
using namespace std;//遞增的函數
double fun(double x)
{return (x + pow(x, 2) + pow(x, 3) + pow(x, 4) + pow(x, 5));
}int main(int argc, char *argv[])
{double a = 2.0f, b = 2.5f;double c, f;c= a + (b-a)/2;f = fun(c);while(fabs(f-100.0f)>1e-6){if(f > 100.0f){b = c;c = a + (b - a) / 2;}else{a = c;c = a + (b - a) / 2;}f = fun(c);}cout<<fixed<<setprecision(20)<<c<<endl;return 0;
}
2.23964317142963410000
請按任意鍵繼續. . .
2.23964317142963410000
請按任意鍵繼續. . .
這個題用心算,答案在2.0~2.5之間,因為2.5^5=97.62625... 當x=2時,加起來才62,
設定一個函數f(x)=x+x^2+x^3+x^4+x^5, x屬于區間[2.0 2.5]
最優化。。。。
總結
- 上一篇: 递归 将一个整数逆序
- 下一篇: 【转载】生物软件之DNA分析