• HDU 2899 Strange fuction(牛顿迭代)


    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 9333    Accepted Submission(s): 6352


    Problem Description
    Now, here is a fuction:
      F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 <= x <=100)
    Can you find the minimum value when x is between 0 and 100.
     
    Input
    The first line of the input contains an integer T(1<=T<=100) which means the number of test cases. Then T lines follow, each line has only one real numbers Y.(0 < Y <1e10)
     
    Output
    Just the minimum value (accurate up to 4 decimal places),when x is between 0 and 100.
     
    Sample Input
    2 100 200
     
    Sample Output
    -74.4291 -178.8534
     
    Author
    Redow
     
    Recommend
    lcy   |   We have carefully selected several similar problems for you:  2199 2289 2298 2141 3400 
     
    被eps卡好蛋疼啊。。
    首先求函数的最大最小值问题可以转化为导数的零点的问题
    然后用牛顿迭代求导数零点就行了
    eps不能设的太小
     
     
    #include<cstdio>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    const double eps = 1e-9;
    double y;
    double fdd(double x) {
        return 252 * pow(x, 5) + 240 * pow(x, 4) + 42 * x + 10;
    }
    double fd(double x) {
        return 42 * pow(x, 6) + 48 * pow(x, 5) + 21 * pow(x, 2) + 10 * x - y;
    }
    double f(double x) {
        return 6 * pow(x, 7) + 8 * pow(x, 6) + 7 * pow(x, 3) + 5 * pow(x, 2) - y  * x;
    }
    double Newton(double x) {
        while(fabs(fd(x)) > eps) 
            x = x - fd(x) / fdd(x);
        return x;
    }
    int main() {
        int QwQ;
        scanf("%d", &QwQ);
        while(QwQ--) {
            scanf("%lf", &y);
            double ans = 1e15, pos;
            for(int i = 0; i <= 100; i++) {
                double anspos = Newton(i);
                if(anspos >= 0 && anspos <= 100) 
                    ans = min(ans, f(anspos));
            } 
            printf("%.4lf
    ", ans);
        }
        return 0;
    }
  • 相关阅读:
    MySQL查询优化程序
    mysql主从:主键冲突问题
    Cacti 'graph_xport.php' SQL注入漏洞
    Nginx SPDY缓冲区溢出漏洞
    Zend Framework XML外部实体和安全绕过漏洞
    WordPress 3.8.1 /xmlrpc.php拒绝服务漏洞
    OpenSSH 'child_set_env()'函数安全绕过漏洞
    PHP "gdImageCreateFromXpm()"空指针间接引用漏洞
    Apache HTTP Server多个拒绝服务漏洞
    Samba 安全漏洞
  • 原文地址:https://www.cnblogs.com/zwfymqz/p/9149347.html
Copyright © 2020-2023  润新知