[关闭]
@Metralix 2017-03-31T14:25:42.000000Z 字数 567 阅读 839

A - Strange fuction

数论 规律


题目大意

求该函数的最值。

解题思路

求函数的最小值,首先求导的导函数为:42 * x^6+48*x^5+21*x^2+10*x-y 
又由于导函数是单增函数,所以必有先负后正,即原函数必有先减后增的性质。求出导函数的零点就是原函数的最小值点。
求导函数最小值方法是2分法.

  1. #include<stdio.h>
  2. #include<math.h>
  3. double func(double x,double y)
  4. {
  5. return 6*pow(x,7)+8*pow(x,6)+7*pow(x,3)+5*x*x-y*x;
  6. }
  7. double D_func(double x,double y)
  8. {
  9. return 42*pow(x,6)+48*pow(x,5)+21*pow(x,2)+10*x-y;
  10. }
  11. int main()
  12. {
  13. int k;
  14. scanf("%d",&k);
  15. while(k--)
  16. {
  17. double Y,Floor,Ceil,Mid;
  18. scanf("%lf",&Y);
  19. Floor=0.0;
  20. Ceil=100.0;
  21. while(Ceil-Floor>1e-6)
  22. {
  23. Mid=(Ceil+Floor)/2;
  24. if(D_func(Mid,Y)>0) Ceil=Mid;
  25. else Floor=Mid;
  26. }
  27. printf("%.4lf\n",func(Mid,Y));
  28. }
  29. return 0;
  30. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注