アットウィキロゴ

pjhfff

class pro{
public static void main(String args[]){
int m,mx,n,n1,n2,n3,s1,s2,j,e1,e2,e3;
int p1,p2,p3,p4,p5,px;
int px1,px2,px3,px4,px5;
int pxs1,pxs2,pxs3,pxs4,pxs5;
double tk,tl,tr,ww,maxw,tks,tls,trs,u1,u2;
double u3,u4,u5,z1,z2,z3,z4,z5;
double th1[]=new double[6];
double th2[]=new double[6];
double c[][]=new double[6][6];
double y1[][]=new double[6][6];
double y2[][]=new double[6][6];    
double u[][][]=new double[6][6][3];
double w[][][]=new double[6][6][3];
double z[][][]=new double[6][6][3];
double v[][][][][][][]=new double[5][3][3][3][3][3][5];
int goto1[][][][][][][]=new int[5][3][3][3][3][3][5];
int goto2[][][][][][][]=new int[5][3][3][3][3][3][5];
int goto3[][][][][][][]=new int[5][3][3][3][3][3][5];
int goto4[][][][][][][]=new int[5][3][3][3][3][3][5];
int goto5[][][][][][][]=new int[5][3][3][3][3][3][5];
int gotom[][][][][][][]=new int[5][3][3][3][3][3][5];
int end1[][][][][]=new int[3][3][3][3][3];
int end2[][][][][]=new int[3][3][3][3][3];
int end3[][][][][]=new int[3][3][3][3][3];
int end4[][][][][]=new int[3][3][3][3][3];
int end5[][][][][]=new int[3][3][3][3][3];
int endm[][][][][]=new int[3][3][3][3][3];
double endv[][][][][]=new double[3][3][3][3][3];
int op[][]=new int[6][6];
double ys1,ys2,cs;
double v1,v2;
double maxv;
double h,dc,dy;
int t1,t2;
for (s1=1;s1<6;s1++){
th1[s1]=0.2*s1;
}

for (s2=1;s2<6;s2++){
th2[s2]=0.1*s2;
}


maxw=-999;
tks=0;
tls=0;
trs=0;
for (n1=5;n1<40;n1++){
for (n2=5;n2<40;n2++){
tk=0.01*n1;
tl=0.01*n2;
tr=trs(tk,tl,th1,th2);
ww=wel(tk,tl,tr,th1,th2);
if (ww>maxw)tks=tk;
if (ww>maxw)tls=tl;
if (ww>maxw)trs=tr;
if (ww>maxw)maxw=ww;
}
}
System.out.println(tks);
System.out.println(tls);

tk=tks;
tl=tls;
tr=trs;

for (s1=1;s1<6;s1++){
for (s2=1;s2<6;s2++){
y1[s1][s2]=th1[s1]*mlx(s1,s2,tk,tl,tr,th1,th2);
y2[s1][s2]=th2[s2]*flx(s1,s2,tk,tl,tr,th1,th2);
c[s1][s2]=(1-tk)*y1[s1][s2]+(1-tl)*y2[s1][s2]+tr;
}
}

h=0.005;
t2=0;
while(t2<5){
h=h/2;
t1=0;
while(t1<100){

for (s1=1;s1<6;s1++){
for (s2=1;s2<6;s2++){
for (n=-1;n<2;n++){  
cs=c[s1][s2]-n*h;
ys1=y1[s1][s2];
ys2=y2[s1][s2];
u[s1][s2][n+1]=ux(cs,1-ys1/th1[s1],1-ys2/th2[s2]);    
}
}
}

for (s1=1;s1<5;s1++){
for (s2=1;s2<6;s2++){
for (n=-1;n<2;n++){  
cs=c[s1][s2]-n*h;
ys1=y1[s1][s2];
ys2=y2[s1][s2];
w[s1][s2][n+1]=ux(cs,1-ys1/th1[s1+1],1-ys2/th2[s2]);    
}
}
}


for (s1=1;s1<6;s1++){
for (s2=1;s2<5;s2++){
for (n=-1;n<2;n++){  
cs=c[s1][s2]-n*h;
ys1=y1[s1][s2];
ys2=y2[s1][s2];
z[s1][s2][n+1]=ux(cs,1-ys1/th1[s1],1-ys2/th2[s2+1]);    
}
}
}

for (p1=-1;p1<2;p1++){
for (p2=-1;p2<2;p2++){
for (p3=-1;p3<2;p3++){
for (p4=-1;p4<2;p4++){
for (p5=-1;p5<2;p5++){
for (m=-2;m<3;m++){
v[1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=-999;    
}
}
}
}
}
}

for (p1=-1;p1<2;p1++){
for (p2=-1;p2<2;p2++){
for (p3=-1;p3<2;p3++){
for (p4=-1;p4<2;p4++){
for (p5=-1;p5<2;p5++){
m=p1+p2+p3+p4+p5;
u1=u[1][1][p1+1];
u2=u[1][2][p2+1];
u3=u[1][3][p3+1];
u4=u[1][4][p4+1];
u5=u[1][5][p5+1];
z1=z[1][1][p1+1];
z2=z[1][2][p2+1];
z3=z[1][3][p3+1];
z4=z[1][4][p4+1];  
px=0;
if (z1>u2)px=100;
if (z2>u3)px=100;
if (z3>u4)px=100;
if (z4>u5)px=100;
if (m>2)px=100;
if (m<-2)px=100;
v1=u1+u2+u3+u4+u5;
if (px>50)m=0;
if (px>50)v1=-999;  
v[1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=v1;
}
}    
}
}
}


for (s1=2;s1<5;s1++){
for (p1=-1;p1<2;p1++){
for (p2=-1;p2<2;p2++){
for (p3=-1;p3<2;p3++){
for (p4=-1;p4<2;p4++){
for (p5=-1;p5<2;p5++){
for (m=-2;m<3;m++){
mx=m-p1-p2-p3-p4-p5;
u1=u[s1][1][p1+1];
u2=u[s1][2][p2+1];
u3=u[s1][3][p3+1];
u4=u[s1][4][p4+1];
u5=u[s1][5][p5+1];
z1=z[s1][1][p1+1];
z2=z[s1][2][p2+1];
z3=z[s1][3][p3+1];
z4=z[s1][4][p4+1];  
px=0;
if (z1>u2)px=100;
if (z2>u3)px=100;
if (z3>u4)px=100;
if (z4>u5)px=100;
if (mx>2)px=100;
if (mx<-2)px=100;
v1=u1+u2+u3+u4+u5;
if (px>50)mx=0;  
maxv=-999;
pxs1=0;
pxs2=0;  
pxs3=0;
pxs4=0;
pxs5=0;
for (px1=-1;px1<2;px1++){
for (px2=-1;px2<2;px2++){
for (px3=-1;px3<2;px3++){
for (px4=-1;px4<2;px4++){
for (px5=-1;px5<2;px5++){
v2=v1+v[s1-1][px1+1][px2+1][px3+1][px4+1][px5+1][mx+2];
if(w[s1-1][1][px1+1]>u1)v2=-999;
if(w[s1-1][2][px2+1]>u2)v2=-999;
if(w[s1-1][3][px3+1]>u3)v2=-999;
if(w[s1-1][4][px4+1]>u4)v2=-999;
if(w[s1-1][5][px5+1]>u5)v2=-999;
if (v2>maxv)pxs1=px1;
if (v2>maxv)pxs2=px2;
if (v2>maxv)pxs3=px3;
if (v2>maxv)pxs4=px4;
if (v2>maxv)pxs5=px5;  
if (v2>maxv)maxv=v2;
}
}
}
}
}  
if (px>50)maxv=-999;
v[s1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=maxv;
goto1[s1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=pxs1;
goto2[s1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=pxs2;
goto3[s1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=pxs3;
goto4[s1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=pxs4;
goto5[s1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=pxs5;
gotom[s1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=mx;
}
}
}
}  
}
}  
}

for (p1=-1;p1<2;p1++){
for (p2=-1;p2<2;p2++){
for (p3=-1;p3<2;p3++){
for (p4=-1;p4<2;p4++){
for (p5=-1;p5<2;p5++){
u1=u[5][1][p1+1];
u2=u[5][2][p2+1];
u3=u[5][3][p3+1];
u4=u[5][4][p4+1];
u5=u[5][5][p5+1];
z1=z[5][1][p1+1];
z2=z[5][2][p2+1];
z3=z[5][3][p3+1];
z4=z[5][4][p4+1];
mx=-p1-p2-p3-p4-p5;
px=0;
if (mx>2)px=100;
if (mx<-2)px=100;
if (z1>u2)px=100;
if (z2>u3)px=100;
if (z3>u4)px=100;
if (z4>u5)px=100;
if (px>50)mx=0;
pxs1=0;
pxs2=0;
pxs3=0;
pxs4=0;
pxs5=0;  
maxv=-999;
for (px1=-1;px1<2;px1++){
for (px2=-1;px2<2;px2++){
for (px3=-1;px3<2;px3++){
for (px4=-1;px4<2;px4++){
for (px5=-1;px5<2;px5++){
v1=u1+u2+u3+u4+u5+v[4][px1+1][px2+1][px3+1][px4+1][px5+1][mx+2];
if(w[4][1][px1+1]>u1)v1=-999;
if(w[4][2][px2+1]>u2)v1=-999;
if(w[4][3][px3+1]>u3)v1=-999;
if(w[4][4][px4+1]>u4)v1=-999;
if(w[4][5][px5+1]>u5)v1=-999;
if (v1>maxv)pxs1=px1;
if (v1>maxv)pxs2=px2;
if (v1>maxv)pxs3=px3;
if (v1>maxv)pxs4=px4;
if (v1>maxv)pxs5=px5;
if (v1>maxv)maxv=v1;
}
}
}
}
}  
if (px>50)maxv=-999;
end1[p1+1][p2+1][p3+1][p4+1][p5+1]=pxs1;
end2[p1+1][p2+1][p3+1][p4+1][p5+1]=pxs2;
end3[p1+1][p2+1][p3+1][p4+1][p5+1]=pxs3;
end4[p1+1][p2+1][p3+1][p4+1][p5+1]=pxs4;
end5[p1+1][p2+1][p3+1][p4+1][p5+1]=pxs5;
endm[p1+1][p2+1][p3+1][p4+1][p5+1]=mx;
endv[p1+1][p2+1][p3+1][p4+1][p5+1]=maxv;
}
}  
}
}
}


px1=0;
px2=0;
px3=0;
px4=0;
px5=0;
maxv=-999;
for (p1=-1;p1<2;p1++){
for (p2=-1;p2<2;p2++){
for (p3=-1;p3<2;p3++){
for (p4=-1;p4<2;p4++){
for (p5=-1;p5<2;p5++){  
if (endv[p1+1][p2+1][p3+1][p4+1][p5+1]>maxv)px1=p1;
if (endv[p1+1][p2+1][p3+1][p4+1][p5+1]>maxv)px2=p2;
if (endv[p1+1][p2+1][p3+1][p4+1][p5+1]>maxv)px3=p3;
if (endv[p1+1][p2+1][p3+1][p4+1][p5+1]>maxv)px4=p4;
if (endv[p1+1][p2+1][p3+1][p4+1][p5+1]>maxv)px5=p5;
if (endv[p1+1][p2+1][p3+1][p4+1][p5+1]>maxv)maxv=endv[p1+1][p2+1][p3+1][p4+1][p5+1];
}
}  
}
}
}

op[5][1]=px1;
op[5][2]=px2;  
op[5][3]=px3;
op[5][4]=px4;
op[5][5]=px5;

op[4][1]=end1[px1+1][px2+1][px3+1][px4+1][px5+1] ;
op[4][2]=end2[px1+1][px2+1][px3+1][px4+1][px5+1] ;
op[4][3]=end3[px1+1][px2+1][px3+1][px4+1][px5+1] ;
op[4][4]=end4[px1+1][px2+1][px3+1][px4+1][px5+1] ;
op[4][5]=end5[px1+1][px2+1][px3+1][px4+1][px5+1] ;
m=endm[px1+1][px2+1][px3+1][px4+1][px5+1] ;

for (j=1;j<4;j++){
s1=4-j;
p1=op[s1+1][1];
p2=op[s1+1][2];
p3=op[s1+1][3];
p4=op[s1+1][4];
p5=op[s1+1][5];
op[s1][1]=goto1[s1+1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2];
op[s1][2]=goto2[s1+1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2];
op[s1][3]=goto3[s1+1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2];
op[s1][4]=goto4[s1+1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2];
op[s1][5]=goto5[s1+1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2];
m=gotom[s1+1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2];
}

e1=0;
for (s1=1;s1<6;s1++){
for (s2=1;s2<6;s2++){
n=op[s1][s2];  
e1=e1+n*n;  
}
}

for (s1=1;s1<6;s1++){
for (s2=1;s2<6;s2++){
n=op[s1][s2];
c[s1][s2]=c[s1][s2]-h*n;
}
}



System.out.println(e1);

for (s1=1;s1<6;s1++){
for (s2=1;s2<6;s2++){
for (n=-1;n<2;n++){  
cs=c[s1][s2];
ys1=y1[s1][s2]+n*h;
ys2=y2[s1][s2];
u[s1][s2][n+1]=ux(cs,1-ys1/th1[s1],1-ys2/th2[s2]);    
}
}
}

for (s1=1;s1<5;s1++){
for (s2=1;s2<6;s2++){
for (n=-1;n<2;n++){  
cs=c[s1][s2];
ys1=y1[s1][s2]+n*h;
ys2=y2[s1][s2];
w[s1][s2][n+1]=ux(cs,1-ys1/th1[s1+1],1-ys2/th2[s2]);    
}
}
}


for (s1=1;s1<6;s1++){
for (s2=1;s2<5;s2++){
for (n=-1;n<2;n++){  
cs=c[s1][s2];
ys1=y1[s1][s2]+n*h;
ys2=y2[s1][s2];
z[s1][s2][n+1]=ux(cs,1-ys1/th1[s1],1-ys2/th2[s2+1]);    
}
}
}

for (p1=-1;p1<2;p1++){
for (p2=-1;p2<2;p2++){
for (p3=-1;p3<2;p3++){
for (p4=-1;p4<2;p4++){
for (p5=-1;p5<2;p5++){
for (m=-2;m<3;m++){
v[1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=-999;    
}
}
}
}
}
}

for (p1=-1;p1<2;p1++){
for (p2=-1;p2<2;p2++){
for (p3=-1;p3<2;p3++){
for (p4=-1;p4<2;p4++){
for (p5=-1;p5<2;p5++){
m=p1+p2+p3+p4+p5;
u1=u[1][1][p1+1];
u2=u[1][2][p2+1];
u3=u[1][3][p3+1];
u4=u[1][4][p4+1];
u5=u[1][5][p5+1];
z1=z[1][1][p1+1];
z2=z[1][2][p2+1];
z3=z[1][3][p3+1];
z4=z[1][4][p4+1];  
px=0;
if (z1>u2)px=100;
if (z2>u3)px=100;
if (z3>u4)px=100;
if (z4>u5)px=100;
if (m>2)px=100;
if (m<-2)px=100;
v1=u1+u2+u3+u4+u5;
if (px>50)m=0;
if (px>50)v1=-999;  
v[1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=v1;
}
}    
}
}
}


for (s1=2;s1<5;s1++){
for (p1=-1;p1<2;p1++){
for (p2=-1;p2<2;p2++){
for (p3=-1;p3<2;p3++){
for (p4=-1;p4<2;p4++){
for (p5=-1;p5<2;p5++){
for (m=-2;m<3;m++){
mx=m-p1-p2-p3-p4-p5;
u1=u[s1][1][p1+1];
u2=u[s1][2][p2+1];
u3=u[s1][3][p3+1];
u4=u[s1][4][p4+1];
u5=u[s1][5][p5+1];
z1=z[s1][1][p1+1];
z2=z[s1][2][p2+1];
z3=z[s1][3][p3+1];
z4=z[s1][4][p4+1];  
px=0;
if (z1>u2)px=100;
if (z2>u3)px=100;
if (z3>u4)px=100;
if (z4>u5)px=100;
if (mx>2)px=100;
if (mx<-2)px=100;
v1=u1+u2+u3+u4+u5;
if (px>50)mx=0;  
maxv=-999;
pxs1=0;
pxs2=0;  
pxs3=0;
pxs4=0;
pxs5=0;
for (px1=-1;px1<2;px1++){
for (px2=-1;px2<2;px2++){
for (px3=-1;px3<2;px3++){
for (px4=-1;px4<2;px4++){
for (px5=-1;px5<2;px5++){
v2=v1+v[s1-1][px1+1][px2+1][px3+1][px4+1][px5+1][mx+2];
if(w[s1-1][1][px1+1]>u1)v2=-999;
if(w[s1-1][2][px2+1]>u2)v2=-999;
if(w[s1-1][3][px3+1]>u3)v2=-999;
if(w[s1-1][4][px4+1]>u4)v2=-999;
if(w[s1-1][5][px5+1]>u5)v2=-999;
if (v2>maxv)pxs1=px1;
if (v2>maxv)pxs2=px2;
if (v2>maxv)pxs3=px3;
if (v2>maxv)pxs4=px4;
if (v2>maxv)pxs5=px5;  
if (v2>maxv)maxv=v2;
}
}
}
}
}  
if (px>50)maxv=-999;
v[s1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=maxv;
goto1[s1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=pxs1;
goto2[s1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=pxs2;
goto3[s1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=pxs3;
goto4[s1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=pxs4;
goto5[s1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=pxs5;
gotom[s1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=mx;
}
}
}
}  
}
}  
}

for (p1=-1;p1<2;p1++){
for (p2=-1;p2<2;p2++){
for (p3=-1;p3<2;p3++){
for (p4=-1;p4<2;p4++){
for (p5=-1;p5<2;p5++){
u1=u[5][1][p1+1];
u2=u[5][2][p2+1];
u3=u[5][3][p3+1];
u4=u[5][4][p4+1];
u5=u[5][5][p5+1];
z1=z[5][1][p1+1];
z2=z[5][2][p2+1];
z3=z[5][3][p3+1];
z4=z[5][4][p4+1];
mx=-p1-p2-p3-p4-p5;
px=0;
if (mx>2)px=100;
if (mx<-2)px=100;
if (z1>u2)px=100;
if (z2>u3)px=100;
if (z3>u4)px=100;
if (z4>u5)px=100;
if (px>50)mx=0;
pxs1=0;
pxs2=0;
pxs3=0;
pxs4=0;
pxs5=0;  
maxv=-999;
for (px1=-1;px1<2;px1++){
for (px2=-1;px2<2;px2++){
for (px3=-1;px3<2;px3++){
for (px4=-1;px4<2;px4++){
for (px5=-1;px5<2;px5++){
v1=u1+u2+u3+u4+u5+v[4][px1+1][px2+1][px3+1][px4+1][px5+1][mx+2];
if(w[4][1][px1+1]>u1)v1=-999;
if(w[4][2][px2+1]>u2)v1=-999;
if(w[4][3][px3+1]>u3)v1=-999;
if(w[4][4][px4+1]>u4)v1=-999;
if(w[4][5][px5+1]>u5)v1=-999;
if (v1>maxv)pxs1=px1;
if (v1>maxv)pxs2=px2;
if (v1>maxv)pxs3=px3;
if (v1>maxv)pxs4=px4;
if (v1>maxv)pxs5=px5;
if (v1>maxv)maxv=v1;
}
}
}
}
}  
if (px>50)maxv=-999;
end1[p1+1][p2+1][p3+1][p4+1][p5+1]=pxs1;
end2[p1+1][p2+1][p3+1][p4+1][p5+1]=pxs2;
end3[p1+1][p2+1][p3+1][p4+1][p5+1]=pxs3;
end4[p1+1][p2+1][p3+1][p4+1][p5+1]=pxs4;
end5[p1+1][p2+1][p3+1][p4+1][p5+1]=pxs5;
endm[p1+1][p2+1][p3+1][p4+1][p5+1]=mx;
endv[p1+1][p2+1][p3+1][p4+1][p5+1]=maxv;
}
}  
}
}
}


px1=0;
px2=0;
px3=0;
px4=0;
px5=0;
maxv=-999;
for (p1=-1;p1<2;p1++){
for (p2=-1;p2<2;p2++){
for (p3=-1;p3<2;p3++){
for (p4=-1;p4<2;p4++){
for (p5=-1;p5<2;p5++){  
if (endv[p1+1][p2+1][p3+1][p4+1][p5+1]>maxv)px1=p1;
if (endv[p1+1][p2+1][p3+1][p4+1][p5+1]>maxv)px2=p2;
if (endv[p1+1][p2+1][p3+1][p4+1][p5+1]>maxv)px3=p3;
if (endv[p1+1][p2+1][p3+1][p4+1][p5+1]>maxv)px4=p4;
if (endv[p1+1][p2+1][p3+1][p4+1][p5+1]>maxv)px5=p5;
if (endv[p1+1][p2+1][p3+1][p4+1][p5+1]>maxv)maxv=endv[p1+1][p2+1][p3+1][p4+1][p5+1];
}
}  
}
}
}

op[5][1]=px1;
op[5][2]=px2;  
op[5][3]=px3;
op[5][4]=px4;
op[5][5]=px5;

op[4][1]=end1[px1+1][px2+1][px3+1][px4+1][px5+1] ;
op[4][2]=end2[px1+1][px2+1][px3+1][px4+1][px5+1] ;
op[4][3]=end3[px1+1][px2+1][px3+1][px4+1][px5+1] ;
op[4][4]=end4[px1+1][px2+1][px3+1][px4+1][px5+1] ;
op[4][5]=end5[px1+1][px2+1][px3+1][px4+1][px5+1] ;
m=endm[px1+1][px2+1][px3+1][px4+1][px5+1] ;

for (j=1;j<4;j++){
s1=4-j;
p1=op[s1+1][1];
p2=op[s1+1][2];
p3=op[s1+1][3];
p4=op[s1+1][4];
p5=op[s1+1][5];
op[s1][1]=goto1[s1+1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2];
op[s1][2]=goto2[s1+1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2];
op[s1][3]=goto3[s1+1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2];
op[s1][4]=goto4[s1+1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2];
op[s1][5]=goto5[s1+1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2];
m=gotom[s1+1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2];
}

e2=0;
for (s1=1;s1<6;s1++){
for (s2=1;s2<6;s2++){
n=op[s1][s2];  
e2=e2+n*n;  
}
}

for (s1=1;s1<6;s1++){
for (s2=1;s2<6;s2++){
n=op[s1][s2];
y1[s1][s2]=y1[s1][s2]+h*n;
}
}

System.out.println(e2);

for (s1=1;s1<6;s1++){
for (s2=1;s2<6;s2++){
for (n=-1;n<2;n++){  
cs=c[s1][s2];
ys1=y1[s1][s2];
ys2=y2[s1][s2]+n*h;
u[s1][s2][n+1]=ux(cs,1-ys1/th1[s1],1-ys2/th2[s2]);    
}
}
}

for (s1=1;s1<5;s1++){
for (s2=1;s2<6;s2++){
for (n=-1;n<2;n++){  
cs=c[s1][s2];
ys1=y1[s1][s2];
ys2=y2[s1][s2]+n*h;
w[s1][s2][n+1]=ux(cs,1-ys1/th1[s1+1],1-ys2/th2[s2]);    
}
}
}


for (s1=1;s1<6;s1++){
for (s2=1;s2<5;s2++){
for (n=-1;n<2;n++){  
cs=c[s1][s2];
ys1=y1[s1][s2];
ys2=y2[s1][s2]+n*h;
z[s1][s2][n+1]=ux(cs,1-ys1/th1[s1],1-ys2/th2[s2+1]);    
}
}
}

for (p1=-1;p1<2;p1++){
for (p2=-1;p2<2;p2++){
for (p3=-1;p3<2;p3++){
for (p4=-1;p4<2;p4++){
for (p5=-1;p5<2;p5++){
for (m=-2;m<3;m++){
v[1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=-999;    
}
}
}
}
}
}

for (p1=-1;p1<2;p1++){
for (p2=-1;p2<2;p2++){
for (p3=-1;p3<2;p3++){
for (p4=-1;p4<2;p4++){
for (p5=-1;p5<2;p5++){
m=p1+p2+p3+p4+p5;
u1=u[1][1][p1+1];
u2=u[1][2][p2+1];
u3=u[1][3][p3+1];
u4=u[1][4][p4+1];
u5=u[1][5][p5+1];
z1=z[1][1][p1+1];
z2=z[1][2][p2+1];
z3=z[1][3][p3+1];
z4=z[1][4][p4+1];  
px=0;
if (z1>u2)px=100;
if (z2>u3)px=100;
if (z3>u4)px=100;
if (z4>u5)px=100;
if (m>2)px=100;
if (m<-2)px=100;
v1=u1+u2+u3+u4+u5;
if (px>50)m=0;
if (px>50)v1=-999;  
v[1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=v1;
}
}    
}
}
}


for (s1=2;s1<5;s1++){
for (p1=-1;p1<2;p1++){
for (p2=-1;p2<2;p2++){
for (p3=-1;p3<2;p3++){
for (p4=-1;p4<2;p4++){
for (p5=-1;p5<2;p5++){
for (m=-2;m<3;m++){
mx=m-p1-p2-p3-p4-p5;
u1=u[s1][1][p1+1];
u2=u[s1][2][p2+1];
u3=u[s1][3][p3+1];
u4=u[s1][4][p4+1];
u5=u[s1][5][p5+1];
z1=z[s1][1][p1+1];
z2=z[s1][2][p2+1];
z3=z[s1][3][p3+1];
z4=z[s1][4][p4+1];  
px=0;
if (z1>u2)px=100;
if (z2>u3)px=100;
if (z3>u4)px=100;
if (z4>u5)px=100;
if (mx>2)px=100;
if (mx<-2)px=100;
v1=u1+u2+u3+u4+u5;
if (px>50)mx=0;  
maxv=-999;
pxs1=0;
pxs2=0;  
pxs3=0;
pxs4=0;
pxs5=0;
for (px1=-1;px1<2;px1++){
for (px2=-1;px2<2;px2++){
for (px3=-1;px3<2;px3++){
for (px4=-1;px4<2;px4++){
for (px5=-1;px5<2;px5++){
v2=v1+v[s1-1][px1+1][px2+1][px3+1][px4+1][px5+1][mx+2];
if(w[s1-1][1][px1+1]>u1)v2=-999;
if(w[s1-1][2][px2+1]>u2)v2=-999;
if(w[s1-1][3][px3+1]>u3)v2=-999;
if(w[s1-1][4][px4+1]>u4)v2=-999;
if(w[s1-1][5][px5+1]>u5)v2=-999;
if (v2>maxv)pxs1=px1;
if (v2>maxv)pxs2=px2;
if (v2>maxv)pxs3=px3;
if (v2>maxv)pxs4=px4;
if (v2>maxv)pxs5=px5;  
if (v2>maxv)maxv=v2;
}
}
}
}
}  
if (px>50)maxv=-999;
v[s1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=maxv;
goto1[s1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=pxs1;
goto2[s1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=pxs2;
goto3[s1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=pxs3;
goto4[s1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=pxs4;
goto5[s1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=pxs5;
gotom[s1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2]=mx;
}
}
}
}  
}
}  
}

for (p1=-1;p1<2;p1++){
for (p2=-1;p2<2;p2++){
for (p3=-1;p3<2;p3++){
for (p4=-1;p4<2;p4++){
for (p5=-1;p5<2;p5++){
u1=u[5][1][p1+1];
u2=u[5][2][p2+1];
u3=u[5][3][p3+1];
u4=u[5][4][p4+1];
u5=u[5][5][p5+1];
z1=z[5][1][p1+1];
z2=z[5][2][p2+1];
z3=z[5][3][p3+1];
z4=z[5][4][p4+1];
mx=-p1-p2-p3-p4-p5;
px=0;
if (mx>2)px=100;
if (mx<-2)px=100;
if (z1>u2)px=100;
if (z2>u3)px=100;
if (z3>u4)px=100;
if (z4>u5)px=100;
if (px>50)mx=0;
pxs1=0;
pxs2=0;
pxs3=0;
pxs4=0;
pxs5=0;  
maxv=-999;
for (px1=-1;px1<2;px1++){
for (px2=-1;px2<2;px2++){
for (px3=-1;px3<2;px3++){
for (px4=-1;px4<2;px4++){
for (px5=-1;px5<2;px5++){
v1=u1+u2+u3+u4+u5+v[4][px1+1][px2+1][px3+1][px4+1][px5+1][mx+2];
if(w[4][1][px1+1]>u1)v1=-999;
if(w[4][2][px2+1]>u2)v1=-999;
if(w[4][3][px3+1]>u3)v1=-999;
if(w[4][4][px4+1]>u4)v1=-999;
if(w[4][5][px5+1]>u5)v1=-999;
if (v1>maxv)pxs1=px1;
if (v1>maxv)pxs2=px2;
if (v1>maxv)pxs3=px3;
if (v1>maxv)pxs4=px4;
if (v1>maxv)pxs5=px5;
if (v1>maxv)maxv=v1;
}
}
}
}
}  
if (px>50)maxv=-999;
end1[p1+1][p2+1][p3+1][p4+1][p5+1]=pxs1;
end2[p1+1][p2+1][p3+1][p4+1][p5+1]=pxs2;
end3[p1+1][p2+1][p3+1][p4+1][p5+1]=pxs3;
end4[p1+1][p2+1][p3+1][p4+1][p5+1]=pxs4;
end5[p1+1][p2+1][p3+1][p4+1][p5+1]=pxs5;
endm[p1+1][p2+1][p3+1][p4+1][p5+1]=mx;
endv[p1+1][p2+1][p3+1][p4+1][p5+1]=maxv;
}
}  
}
}
}


px1=0;
px2=0;
px3=0;
px4=0;
px5=0;
maxv=-999;
for (p1=-1;p1<2;p1++){
for (p2=-1;p2<2;p2++){
for (p3=-1;p3<2;p3++){
for (p4=-1;p4<2;p4++){
for (p5=-1;p5<2;p5++){  
if (endv[p1+1][p2+1][p3+1][p4+1][p5+1]>maxv)px1=p1;
if (endv[p1+1][p2+1][p3+1][p4+1][p5+1]>maxv)px2=p2;
if (endv[p1+1][p2+1][p3+1][p4+1][p5+1]>maxv)px3=p3;
if (endv[p1+1][p2+1][p3+1][p4+1][p5+1]>maxv)px4=p4;
if (endv[p1+1][p2+1][p3+1][p4+1][p5+1]>maxv)px5=p5;
if (endv[p1+1][p2+1][p3+1][p4+1][p5+1]>maxv)maxv=endv[p1+1][p2+1][p3+1][p4+1][p5+1];
}
}  
}
}
}

op[5][1]=px1;
op[5][2]=px2;  
op[5][3]=px3;
op[5][4]=px4;
op[5][5]=px5;

op[4][1]=end1[px1+1][px2+1][px3+1][px4+1][px5+1] ;
op[4][2]=end2[px1+1][px2+1][px3+1][px4+1][px5+1] ;
op[4][3]=end3[px1+1][px2+1][px3+1][px4+1][px5+1] ;
op[4][4]=end4[px1+1][px2+1][px3+1][px4+1][px5+1] ;
op[4][5]=end5[px1+1][px2+1][px3+1][px4+1][px5+1] ;
m=endm[px1+1][px2+1][px3+1][px4+1][px5+1] ;

for (j=1;j<4;j++){
s1=4-j;
p1=op[s1+1][1];
p2=op[s1+1][2];
p3=op[s1+1][3];
p4=op[s1+1][4];
p5=op[s1+1][5];
op[s1][1]=goto1[s1+1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2];
op[s1][2]=goto2[s1+1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2];
op[s1][3]=goto3[s1+1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2];
op[s1][4]=goto4[s1+1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2];
op[s1][5]=goto5[s1+1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2];
m=gotom[s1+1][p1+1][p2+1][p3+1][p4+1][p5+1][m+2];
}

e3=0;
for (s1=1;s1<6;s1++){
for (s2=1;s2<6;s2++){
n=op[s1][s2];  
e3=e3+n*n;  
}
}

for (s1=1;s1<6;s1++){
for (s2=1;s2<6;s2++){
n=op[s1][s2];
y2[s1][s2]=y2[s1][s2]+h*n;
}
}

System.out.println(e3);
System.out.println(maxv);
if (e1+e2+e3<3)t1=1000;
t1=t1+1;
}
t2=t2+1;
}


for (s1=1;s1<5;s1++){  
dc=c[s1+1][1]-c[s1][1];
dy=y1[s1+1][1]-y1[s1][1];
System.out.println(1-dc/dy);
}




}
static double ux(double c1,double x1,double x2){
double c2,x3,x4,u1;
int px;
c2=c1;
x3=x1;
x4=x2;
px=0;
if (c2<0)px=100;
if (c2==0)px=100;
if (x3<0)px=100;
if (x3==0)px=100;
if (x3>1)px=100;
if (x4<0)px=100;
if (x4==0)px=100;
if (x4>1)px=100;
if (px>50)c2=0.5;
if (px>50)x3=0.5;
if (px>50)x4=0.5;
u1=Math.log(c2)+Math.log(x3)+Math.log(x4);
if (px>50)u1=-999;
return u1;
}

static double trs(double tk,double tl,double[] th1,double[] th2){
double tr1,tr2,tr3,b1,b2;
int t1;
tr1=0.01;
tr2=0.4;
tr3=0;
b1=bud(tk,tl,tr1,th1,th2);
t1=0;
while(t1<100){
b2=bud(tk,tl,tr2,th1,th2);
tr3=tr2-b2*(tr2-tr1)/(b2-b1);
b1=b2;
tr1=tr2;
tr2=tr3;
b1=b2;
if (b2*b2<0.001)t1=1000;
t1=t1+1;
}
return tr3;
}

static double wel(double tk,double tl,double tr,double[] th1,double[] th2){
int s1,s2;
double ww,w1,w2,l1,l2,c1;
ww=0;
for (s1=1;s1<6;s1++){
for (s2=1;s2<6;s2++){
w1=(1-tk)*th1[s1];
w2=(1-tl)*th2[s2];
l1=mlx(s1,s2,tk,tl,tr,th1,th2);
l2=flx(s1,s2,tk,tl,tr,th1,th2);
c1=w1*l1+w2*l2+tr;
ww=ww+Math.log(c1)+Math.log(1-l1)+Math.log(1-l2);
}
}
return ww;
}

static double bud(double tk,double tl,double tr,double[] th1,double[] th2){
int s1,s2;
double b1,w1,w2,l1,l2,c1;
b1=0;
for (s1=1;s1<6;s1++){
for (s2=1;s2<6;s2++){
w1=(1-tk)*th1[s1];
w2=(1-tl)*th2[s2];
l1=mlx(s1,s2,tk,tl,tr,th1,th2);
l2=flx(s1,s2,tk,tl,tr,th1,th2);
c1=w1*l1+w2*l2+tr;
b1=b1+th1[s1]*l1+th2[s2]*l2-c1;
}
}
return b1;
}

static double mlx(int s1,int s2,double tk,double tl,double tr,double[] th1,double[] th2){
double uc,u1,u2,w1,w2,l1,l2,u3,u4,maxu;
double lx1,lx2,lx3,lx4,c1;
int px;
w1=(1-tk)*th1[s1];
w2=(1-tl)*th2[s2];
l1=1-(w1+w2+tr)/(3*w1);
l2=1-(w1+w2+tr)/(3*w2);
if (l1<0)l1=0;
if (l2<0)l2=0;
c1=w1*l1+w2*l2+tr;
lx1=l1;
u1=Math.log(c1)+Math.log(1-l1)+Math.log(1-l2);
l1=(w1-tr)/(2*w1);
if (l1<0)l1=0;
lx2=l1;
c1=w1*l1+tr;
u2=Math.log(c1)+Math.log(1-l1)+Math.log(1);
l2=(w2-tr)/(2*w2);
if (l2<0)l2=0;
lx3=0;
c1=w2*l2+tr;
u3=Math.log(c1)+Math.log(1-l2)+Math.log(1);
u4=Math.log(tr)+Math.log(1)+Math.log(1);
lx4=0;
maxu=-999;
l1=0;
if (u1>maxu)l1=lx1;
if (u1>maxu)maxu=u1;
if (u2>maxu)l1=lx2;
if (u2>maxu)maxu=u2;
if (u3>maxu)l1=lx3;
if (u3>maxu) maxu=u3;
if (u4>maxu)l1=lx4;
if (u4>maxu)maxu=u4;
return l1;
}
static double flx(int s1,int s2,double tk,double tl,double tr,double[] th1,double[] th2){
double uc,u1,u2,w1,w2,l1,l2,u3,u4,maxu;
double lx1,lx2,lx3,lx4,c1;
int px;
w1=(1-tk)*th1[s1];
w2=(1-tl)*th2[s2];
l1=1-(w1+w2+tr)/(3*w1);
l2=1-(w1+w2+tr)/(3*w2);
if (l1<0)l1=0;
if (l2<0)l2=0;
c1=w1*l1+w2*l2+tr;
lx1=l2;
u1=Math.log(c1)+Math.log(1-l1)+Math.log(1-l2);
l1=(w1-tr)/(2*w1);
if (l1<0)l1=0;
lx2=0;
c1=w1*l1+tr;
u2=Math.log(c1)+Math.log(1-l1)+Math.log(1);
l2=(w2-tr)/(2*w2);
if (l2<0)l2=0;
lx3=l2;
c1=w2*l2+tr;
u3=Math.log(c1)+Math.log(1-l2)+Math.log(1);
u4=Math.log(tr)+Math.log(1)+Math.log(1);
lx4=0;
maxu=-999;
l2=0;
if (u1>maxu)l2=lx1;
if (u1>maxu)  maxu=u1;
if (u2>maxu)  l2=lx2;
if (u2>maxu)  maxu=u2;
if (u3>maxu)  l2=lx3;
if (u3>maxu)  maxu=u3;
if (u4>maxu)  l2=lx4;
if (u4>maxu)  maxu=u4;
return l2;
}
}
最終更新:2010年07月10日 02:15