HDU 5017 模擬退火

2021-06-26 14:17:23 字數 645 閱讀 9110

一步一步慢慢學習~~~

模擬退火**好~~~

**:#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 ...