zoukankan      html  css  js  c++  java
  • hdu 2899

    mxy终于学会求函数极值了。

    先写一道板子。

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef double db;
     4 const db eps = 1e-6;
     5 const db INF = 1e100;
     6 const db delta = 0.98;
     7 int sign(db k){
     8     if (k>eps) return 1; else if (k<-eps) return -1; return 0;
     9 }
    10 int cmp(db k1,db k2){return sign(k1-k2);}
    11 int t;db y;
    12 db get(db x){
    13     return 6*x*x*x*x*x*x*x+8*x*x*x*x*x*x+7*x*x*x+5*x*x-y*x;
    14 }
    15 db x[10];
    16 db random(){
    17     return (rand()&1?1:-1)*rand()*1.0/32767;
    18 }
    19 void init(){
    20     for(int i=0;i<10;i++) x[i]=abs(random())*100;
    21 }
    22 db sa(){
    23     db ans = INF;
    24     db t=100;
    25     while (t>eps){
    26         for(int i=0;i<10;i++){
    27             db tmp = get(x[i]);
    28             for(int j=0;j<10;j++){
    29                 db _x=x[i]+random()*t;
    30                 if(cmp(_x,0)>=0&&cmp(_x,100)<=0){
    31                     db f = get(_x);
    32                     if(tmp>f)
    33                         x[i]=_x;
    34                 }
    35             }
    36         }
    37         t*=delta;
    38     }
    39     for(int i=0;i<10;i++)
    40         ans=min(ans,get(x[i]));
    41     return ans;
    42 }
    43 
    44 int main(){
    45     ios::sync_with_stdio(false);
    46     scanf("%d",&t);
    47     while (t--){
    48         scanf("%lf",&y);
    49         init();
    50         printf("%.4f
    ",sa());
    51     }
    52 }
    View Code
  • 相关阅读:
    python操作MySQL数据库
    用python监控您的window服务
    关于position定位中的几个注意点
    filter 滤镜
    git使用心得
    :after,:before,content
    outline和border
    《css揭秘》之背景与边框
    css权威指南学习笔记--第6章
    浅谈setTimeout和setInterval
  • 原文地址:https://www.cnblogs.com/MXang/p/10544651.html
Copyright © 2011-2022 走看看