编辑代码

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define pi_value 3.1415926
double out(double x)
{
	return x*sin(10*pi_value*x)+1.0;
}
int main()
{
	int t0=20;
	double x0=-1+(double)rand()/RAND_MAX*3;
	while(t0>0)
	{
		int i=0;
		while (i>-300)
		{
			double x1=-1+(double)rand()/RAND_MAX*3;
			if ( fmin(exp(-out(x0)+out(x1)/t0),1) > (double)rand()/RAND_MAX )
			{  x0=x1;
			   i+=1;
			}
			else 
				i-=1;
		}
		t0-=1;
	}
}