一步一步慢慢學習~~~
模擬退火**好~~~
**:#include
#include
#include
#include
#include
using namespace std;
const int n = 30 +5;
double a,b,c,d,e,f;
double dist(double x,double y,double z)
struct point
point(double a,double b,double c):x(a),y(b),z(c) {}
double dis()
}p[n],pp[n];
int mox=;
int moy=;
bool check(double x,double y)
double getz(double x,double y)
}ans = min(ans,p[i].dis());}}
t*=r;
}printf("%.7f\n",ans);
}return 0;
}**寫的有些屎~~~~,沒辦法,自己太渣。
這道題因為精度wa了很多次,這也是模擬退火的著重點,注意!!!
hdu 5017 模擬退火求最值
題意 給乙個橢圓 然後求原點到這個橢圓距離最小的點的距離是多少。解析 依舊用模擬退火。修改了乙個地方,初始溫度從100改到了1,就行了。之前的也修改了。選z的時候,選離遠點近的那個點就行了。pragma comment linker,stack 1677721600 include include ...
hdu 5017 Ellipsoid 模擬退火
hdu 5017 ellipsoid 給定乙個三維空間的橢球面方程,求橢球面上的點到原點 0,0,0 的最小距離。可以發現,橢球面上到原點的距離,具有乙個極大值點和乙個極小值點。用模擬退火的方法可以近似搜尋到全域性最小。這裡因為只有乙個極小值點,所以這裡也不需要以一定概率接受比當前更差的解了。可以說...
HDU1109 模擬退火演算法
hdu1109runaway模擬退火演算法 模擬退火,聽起來很高大上的樣子,但是實現起來非常簡單 對於這道題,我們可以隨機選擇30個源點,以step為步長,讓它們沿任意角度跳躍,直到不管如何跳躍,答案都比當前最優值差。但是這道題並不需要 正統 模擬退火一般設立機率接受比當前差的結果。include ...