www.pudn.com > yichuansuanfayouhua.rar > yichuansuanfayouhua.cpp
#include#include #include #include double fy(double *x,int n); double selection(double *y,double fy,double **array,int sn,int m); double crossover1(double *y,double fy,double **array,int sn,int m); double crossover2(double **array,int sn,int m,int k); double mutation(double **array,int sn,int m,int k); double myrand(double a,double b); int *shuzi(double p,int k); double shuju(int *p, int k); double pi=3.1415926; double pc=0.95, pm=0.001; void main() { //数据定义部分 int i,j,k,n,m,sn; double X=0,*Y,*a,*b,Fy,h=0; double **array,FY=0; //数据输入部分 cout << "请输入变量维数m:m="; cin >> m; cout << m < > a[i]; if((b=new double [m])==NULL) cout << "内存已经分配完。" << endl; for(i=0;i > b[i]; for(i=0;i > n; cout << n < > k; //***选择控制参数 int GEN=800; //***随机生成种群个数 cout << "请输入种群个数: sn="; cin >> sn; cout < double(2.5*(1/sn))) Pi[i]=2.5*Pi[i]; else if(Pi[i] =0;j--) qi[i]=Pi[j]+qi[i]; if((arr=new double *[sn])==NULL) cout << "内存分配已经完。" << endl; for(i=0;i =10) p=p/10; else if(t<=0) p=p*10; else if((t>0)&&(t<10)) break; } tt[0]=t; ten=1; for(i=1;i i;j--) ten=ten*ten; p=p-tt[i-1]*ten*10; tt[i]=int(p/ten); } return tt; }*/ int *shuzi(double p,int k) { int i; int *tt; if((tt=new int [k])==NULL) cout << "内存分配已经完。" << endl; tt[0]=int(p/1); if(tt[0]>=0) for(i=1;i 0;j--) t=t/10; shu=shu+p[i]*t; } return shu; } double crossover2(double **array,int sn,int m,int k) { double r; int ***arr1, ***arr2; int i,j,j1,j2,l1,l2,l3; if((arr1=new int **[sn])==NULL) cout << "内存分配已经完。" << endl; for(i=0;i =pc) { for(j2=0;j2