#5134. 【模板】模拟退火

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:Special Judge
上传者: Laffey

题目描述

众所周知,几个正弦函数叠加的图像可以是十分复杂的。下面是函数 f(x) = 3\sin(4x + 2) - 4\cos(3x - 1) 的部分图像。

你需要做的是对于一个函数 f(x) = A\sin(Bx + C) + D\cos(Ex + F) 找出它的最小值。

由于正弦函数的周期性,你当然可以尝试直接枚举或者找隔壁数竞,不过本题的目的在于用一个存在局部最优解的函数练习模拟退火。

输入格式

一行六个实数,表示 A, B, C, D, E, F

输出格式

一行一个实数,表示你求得的最小值。

由于精度问题以及退火的玄学因素,你的答案只要和标准答案相差在 10^{-1} 以内即被视作正确答案。

样例

样例输入 #1

3 4 2 -4 3 -1

样例输出 #1

-6.6736116577

样例输入 #2

3 0.1 2 -4 3 -1

样例输出 #2

-6.9971437504

样例输入 #3

0.01 100 0 100 100 0

样例输出 #3

-100.0000005000

数据范围与提示

数据保证 -100 \leq A, B, C, D, E, F \leq 100

标程每次执行总扰动次数为 12658000 次,并多次执行取最小值,基本可以保证测试数据的准确性。别学,会 TLE

由于精度原因,数据并不强,标程对所有数据给出的答案均能稳定误差在 10^{-2} 以内,所以大约是没什么大锅了。

由于退火的玄学因素同一份代码可能会得到不同的分数这很正常