您的位置:首页 > 其它

专题二 1002

2016-04-18 22:11 204 查看
一、题目编号:

          1002

二、简单题意:

          F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x,已知y的值,且x的范围在0到100之间,求F(x) 的最小值。

三、解题思路形成过程

          数学问题,求导判断单调性即可。先求出F(x) 的导数:F'(x) =42*x^6+48*x^5+21*x^2+10*x-y。易知在0<=x<=100的范围内,F(x)是先递减后递增的函数。求出使F'(x)=0的x值,便可求出F(x)的最小值。利用二分法求即可。

四、感想

         数学问题~还是利用二分法。

五、AC代码 

#include<iostream>

#include<cmath>

#include<iomanip>

using namespace std;

double calculate(double x,double y)

{

return 42*pow(x,6)+48*pow(x,5)+21*pow(x,2)+10*x-y;

}

int main()

{

int t;

cin>>t;

while(t--)

{

double y;

cin>>y;

double min=0,max=100,mid;

mid=(max+min)/2;

while(fabs(calculate(mid,y))>1e-9)

{

if(calculate(mid,y)>0)

{

max=mid;

mid=(max+min)/2;

}

else

{

min=mid;

mid=(max+min)/2;

}

}

cout<<fixed<<setprecision(4)<<6*pow(mid,7)+8*pow(mid,6)+7*pow(mid,3)+5*pow(mid,2)-y*mid<<endl;

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: