zoukankan      html  css  js  c++  java
  • hdu 2899(数学基础+二分)

    题意:给了你一个函数,然后给了你x的变化范围,让你求出函数的最小值。

    分析:它让你求的是函数的最小值,所以我们可以先对函数求导,得到的导数就可以判断函数的单调性了,求出导数后,我们发现如果函数的导数是x越大所求的的导数也就越大,

    当导数一直为负数时,函数是单调递减的;当导数开始是负数,然后是正数,那说明函数开始时递减的然后是递增的,那么当导数为0时函数值肯定是最小的!我们求导数为0的

    过程,我们可以用二分实现!

    代码实现:

    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    #define eps 1e-8
    
    double g(double x)
    {
        return 42*pow(x,6)+48*pow(x,5)+21*pow(x,2)+10*x;
    }
    
    double f(double x)
    {
        return 6*pow(x,7)+8*pow(x,6)+7*pow(x,3)+5*pow(x,2);
    }
    
    int main()
    {
        int T;
        double y,l,r,mid;
        scanf("%d",&T);
        while(T--)
        {
            scanf("%lf",&y);
            if(g(100.00)-y<=0)
             printf("%.4lf
    ",f(100.00)-y*100.00);
            else
            {
                l=0;r=100;
                while(l+eps<=r)
                {
                    mid=(l+r)/2;
                    if(g(mid)-y<0)
                     l=mid;
                    else if(g(mid)-y>0)
                     r=mid;
                    else if(g(mid)-y<eps)
                     break;
                }
                printf("%.4lf
    ",f(mid)-y*mid);
            }
        }
        return 0;
    }
  • 相关阅读:
    信号量Semaphore的使用
    Future和FutureTask
    阻塞队列和线程池
    Java多线程基础
    Java常用方法
    Scanner和BufferedReader的区别和用法
    QT学习笔记9:QTableWidget的用法总结
    WordPress 建站教程:新手搭建 WordPress个人博客图文教程(完全版)
    Let's do it
    jdk alternatives
  • 原文地址:https://www.cnblogs.com/jiangjing/p/3348783.html
Copyright © 2011-2022 走看看