模拟退火板子:
void sa()
{
for (double T=Begin;T>End;T*=Rate)
{
int x=rand()%cnt1+1;
int y=rand()%cnt2+1;
swap(s1[x],s2[y]);
ll res=calc();
if (res<ans) ans=res;
else if (exp((ans-res)/T)<(double)rand()/RAND_MAX) swap(s1[x],s2[y]);
}
}
其中最后一行有的写小于号有的写大于号,请问到底哪种写法是正确的呢?
求解释 qwq