求助模拟退火
  • 板块学术版
  • 楼主ppip嘟嘟嘟
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/5/16 21:12
  • 上次更新2023/10/28 01:17:06
查看原帖
求助模拟退火
374433
ppip嘟嘟嘟楼主2022/5/16 21:12

模拟退火板子:

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

2022/5/16 21:12
加载中...