专栏首页数据结构与算法HDU 2899Strange fuction(模拟退火)

HDU 2899Strange fuction(模拟退火)

题意

题目链接

求 $F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 <= x <=100)$的最小值

Sol

强上模拟退火,注意eps要开大!

/*
*/
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<ctime>
using namespace std;
const int MAXN = 1e6 + 10;
const double eps = 1e-10, Dlt = 0.98;
int T;
double Y, Best;
double F(double x) {
    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;
}
double getrand(double T) {
    return T * ((rand() << 1) - RAND_MAX);
}
double solve(int id) {
    double x = id, now = F(x);
    Best = min(Best, now);
    for(double T = 101; T > eps; T *= Dlt) {
        double wx = x + getrand(T), wv = F(wx);
        if(wx > eps && (wx - 100 <= eps)) {
            if(wv < Best) x = wx, Best = wv, now = wv;
            if(wv < now || ((exp((wv - now) / T)) * RAND_MAX < rand())) now = wv, x = wx;
        }
    }
}
int main() {
srand((unsigned)time(NULL));
    scanf("%d", &T);
    while(T--) {
        
        Best = 1e20;
        scanf("%lf", &Y);
        int times = 100;
        while(times--) solve(times);
        printf("%.4lf\n", Best);
    }    
    return 0;
}
/*
3
100
200
1000000000
*/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • P1996 约瑟夫问题

    题目背景 约瑟夫是一个无聊的人!!! 题目描述 n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出...

    attack
  • POJA Star not a Tree?(模拟退火)

    attack
  • 1512 转向游戏

    1512 转向游戏 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 白银 Silver 题目描述 Description 小明自认为...

    attack
  • 早报:中国网络直播用户规模年底将达3.92亿

    1、新设网络小贷被叫停,真正持有网络小贷牌照的仅几十家机构 近日,设在央行的互联网金融风险专项整治工作领导小组办公室与设在银监会的P2P网贷风险专项整治工作领...

    用户1335017
  • 性能工具之JMeter两个Java API Demo

    https://github.com/7DGroup/JMeter-API-Demo

    高楼Zee
  • 谷歌用“多巴胺”怼上OpenAI,开源TensorFlow强化学习框架

    最近 OpenAI 在 Dota 2 上的表现,让强化学习又大大地火了一把,但是 OpenAI 的强化学习训练环境 OpenAI Gym 却一直遭到不少抱怨,比...

    新智元
  • Linux Workqueue【转】

    转自:http://kernel.meizu.com/linux-workqueue.html

    用户3033338
  • 设计模式六大原则

      单一职责原则又称为单一功能原则,即不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。

    那一叶随风
  • 这个平台让人人能做天使投资,且像雷军那样只投人不投项目

    微博不只是有娱乐八卦,还有年轻人的梦想。最近一名95后大学生想去旅行的方式有些不寻常,他直接在微博宣告: “谁愿意用50万支持他去南北极旅游,他将用毕业5年内...

    罗超频道
  • 一日一技:从Python源代码里面证明你的猜想

    看过《Python爬虫开发 从入门到实战》的同学,应该对 multiprocessing这个模块比较熟悉,在书上我使用这个模块通过几行代码实现了一个简单的多线程...

    青南

扫码关注云+社区

领取腾讯云代金券