三分法

ぐ巨炮叔叔 提交于 2019-11-28 01:35:27
 1 #include <iostream>
 2 #include <cstdio>
 3 using namespace std;
 4 int n;
 5 const double eps = 1e-7;
 6 double l , r;
 7 double x[15];
 8 double check(double q)
 9 {
10     double ans = 0.0;
11     for(int i = n; i >= 0; i--)
12         ans = ans * q + x[i];
13     return ans;
14 }
15 int main()
16 {
17     scanf("%d%lf%lf" , &n , &l , &r);
18     for(int i = n; i >= 0; i--)
19         scanf("%lf" , &x[i]);
20     while(r - l > eps)
21     {
22         double mid = (l + r) / 2;    
23         if(check(mid - eps) < check(mid + eps))
24             l = mid;
25         else
26             r = mid;
27     }
28     printf("%.5f" , (l + r) / 2);
29     return 0;
30 }

三分法

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!