题意:求解椭圆上的点到(0, 0,0)之间的最短距离。

这个算法也是看了大佬之后才写的^ _ ^.

#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstdio>
#define esp 1e-9
#define T 0.99
using namespace std;
const int maxx=1005;
const int inf=0x3f3f3f3f;
const double dx[8]={1.0,1.0,0.0,-1.0,-1.0,-1.0,0.0,1.0};
const double dy[8]={0.0,1.0,1.0,1.0,0.0,-1.0,-1.0,-1.0};
struct node{double x,y,z;
}p[maxx];
double a,b,c,d,e,f;
double dist(double x,double y,double z){return sqrt(x*x+y*y+z*z);
}
double Get(double x,double y){double A=c,B=d*y+e*x,C=a*x*x+b*y*y+f*x*y-1.0;double delta=B*B-4.0*A*C;if(delta<0.0){return inf;}double z1=(-B+sqrt(delta))/(2.0*A);double z2=(-B-sqrt(delta))/(2.0*A);return z1*z1<z2*z2?z1:z2;
}
void solve(){double x=0.0,y=0.0,z=Get(x,y);double step=0.8;while(step>esp){for(int i=0;i<8;i++){double xx=x+dx[i]*step;double yy=y+dy[i]*step;double zz=Get(xx,yy);if(zz>=inf){continue;}if(dist(xx,yy,zz)-dist(x,y,z)<0.0){x=xx;y=yy;z=zz;}}step*=T;}printf("%.7lf\n",dist(x,y,z));
}
int main(){while(scanf("%lf %lf %lf %lf %lf %lf",&a,&b,&c,&d,&e,&f)!=EOF){solve();}return 0;
}

HDU5017(模拟退火算法)相关推荐

  1. 2018-4-8模拟退火算法

    阅读资料来源: <智能优化算法以及matlab实现>第七章 [图文]智能优化算法_数学建模_王成章_模拟退火法_2011_百度文库 https://wenku.baidu.com/view ...

  2. HDU2899(二分查找+or+模拟退火算法)

    这道题其实是利用函数求导,判断求导后的函数是否大于零或者小于零,等于零情况,从而判断原函数的单调性,代入X求出函数的最小值. 模拟退火算法: 方法一:二分 #include<stdio.h> ...

  3. 【算法】模拟退火算法解决TSP问题的matlab实现

    [算法]模拟退火算法解决TSP问题的matlab实现 参考文章: (1)[算法]模拟退火算法解决TSP问题的matlab实现 (2)https://www.cnblogs.com/wenyehoush ...

  4. 机器学习(MACHINE LEARNING)MATLAB模拟退火算法【SA】

    文章目录 1 什么是智能优化算法 2 常用的智能优化算法 3 智能优化算法的特点 4 模拟退火算法 4.1 简介 4.1 工具箱(SA) 1 什么是智能优化算法 智能优化算法又称现代启发式算法,是一种 ...

  5. 大白话解析模拟退火算法

    一. 爬山算法 ( Hill Climbing ) 介绍模拟退火前,先介绍爬山算法.爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解. ...

  6. 模拟退火算法解决TSP(python实现 110+行代码)【gif生成】

    简述 代码我是基于我之前写的两篇,一篇是遗传算法TSP的Python实现,一篇是模拟退火算法的解决TSP的C++实现. 模拟退火算法理论+Python解决函数极值+C++实现解决TSP问题 遗传算法解 ...

  7. 模拟退火算法理论+Python解决函数极值+C++实现解决TSP问题

    简述 算法设计课这周的作业: 赶紧写了先,不然搞不完了. 文章目录 简述 算法理论部分 变量简单分析 从状态转移概率到状态概率 推导 理解当温度收敛到接近0的时候,收敛到结果 理论部分的后记 pyth ...

  8. 模拟退火算法SA参数设置实验记录

    模拟退火算法有4个参数 N:每个温度迭代次数 T:重复降温次数 a:降温系数 t0:初始温度 本文用一个50个城市的TSP问题数据集,用交叉对比的方法调参.一组参数运行200次取平均. 首先调初始温度 ...

  9. MATLAB应用实战系列(五十三)-模拟退火算法(附源码)

    模拟退火算法 模拟退火算法在处理全局优化.离散变量优化等困难问题中,具有传统优化算法无可比拟的优势.这里描述模拟退火算法的原理及其基本框架结构,给出用模拟退火算法求解TSP问题的具体实现方法 以下是我 ...

  10. 模拟退火算法通俗讲解

    目录 1. 模拟退火算法基本概念 2. 模拟退火算法基本流程 3. 遗传模拟退火算法matlab代码 1. 模拟退火算法基本概念 自然凝结的.不受外界干扰而形成的晶体拥有整齐规则的几何外形.那么从液态 ...

最新文章

  1. 数据与特征对随机森林的影响(特征对比、特征降维、考虑性价比)
  2. 合成大西瓜html源码,index.html
  3. 【合并区间】排序 + 双指针
  4. window apktool 的下载
  5. PP视频怎么关闭PP视频虚拟键盘显示
  6. 提出问题之后,对于回答问题内容的仔细确认!!!(一个字一个字确认!!)
  7. cnsul linux环境后台启动_Linux环境下批量启动、停止或重启jar服务的shell脚本
  8. CSS3魔法堂:说说Multi-column Layout
  9. linux主引导修复工具,Boot-Repair/引导修复工具
  10. 通讯录制作(.csv文件转.vcf文件即vcard格式)
  11. 在线计算机辅助翻译软件,科学网—计算机辅助翻译软件OmegaT - 李继存的博文
  12. 智慧城市:大数据运营中心 IOC —— Web GIS 地图应用
  13. 自媒体账号如何注册申请
  14. 蓝桥杯 java 跳马问题
  15. Qt QPainter::end: Painter ended whith 2 saced states
  16. C罗8000W英镑到底是多少钱?!
  17. 计算机屏幕显示不能全屏,电脑显示器不能全屏显示的解决方法步骤
  18. 03 SpringMVC 处理响应
  19. 超详细的MySQL入门教程(三)
  20. html语言编辑方法,Html双击使文字可编辑的方法

热门文章

  1. 操作系统学习:Linux0.12初始化详细流程-进程退出与系统进入怠速
  2. Scrapy框架的日志信息与配置信息
  3. ACMNO.27 Python的两行代码解决 C语言-字符逆序 写一函数。使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串。 输入 一行字符 输出 逆序后的字符串
  4. 怎样在ROS下实现基于YOLO的px4无人机目标检测?
  5. 机器学习模型调参指南(附代码)
  6. 在为时已晚前 阻止物联网安全威胁和攻击
  7. 蓝桥杯 校门外面的树 (线段树,区间处理)
  8. lvs调整hash表大小
  9. 用SecureCRT在linux系统下载文件
  10. [Cocos2d-x]视差滚屏效果的实现