class dg{
public static void main(String args[]){
double th[]=new double[11];
double cs[]=new double[11];
double xs[]=new double[11];
double x[][]=new double[42][82];
int s,m,n,t1,t2,t3,t4,p1,p2;
double h;
double sumth,z;
double maxv,minv;
int maxn,maxm,j,px;
double op,under;
h=0.01;
for (s=1;s<11;s++){
th[s]=1+0.1*s;
cs[s]=0.5*th[s];
xs[s]=0.5;
}
t4=0;
while(t4<100){
for (s=1;s<11;s++){
m=4*s-3;
n=2*s-1;
x[m][n]=1;
x[m][0]=cs[s]+h;
x[m+1][n]=-1;
x[m+1][0]=-cs[s]+h;
x[m+2][n+1]=1;
x[m+2][0]=xs[s]+h;
x[m+3][n+1]=-1;
x[m+3][0]=-xs[s]+h;
}
sumth=0;
for (s=1;s<11;s++){
n=2*s-1;
x[41][n]=1;
x[41][n+1]=th[s];
sumth=sumth+th[s];
}
x[41][0]=sumth;
for (m=1;m<42;m++){
x[m][m+20]=1;
}
for (s=1;s<11;s++){
m=4*s-2;
n=2*s+60;
x[m][n]=-1;
m=4*s;
n=2*s+61;
x[m][n]=-1;
}
for (n=62;n<82;n++){
x[0][n]=-1;
}
for (s=1;s<11;s++){
m=4*s-2;
for (n=0;n<82;n++){
x[0][n]=x[0][n]-x[m][n];
}
m=4*s;
for (n=0;n<82;n++){
x[0][n]=x[0][n]-x[m][n];
}
}
maxv=0;
maxn=999;
for (n=1;n<82;n++){
if (x[0][n]>maxv)maxn=n;
if (x[0][n]>maxv)maxv=x[0][n];
}
System.out.println(maxn);
t1=0;
while(t1<10){
minv=999;
maxm=999;
for (m=1;m<42;m++){
under=x[m][maxn];
px=0;
if (under==0)px=100;
if (px>50)under=1;
op=x[m][0]/under;
if (op<0)px=100;
j=0;
if (under<0)j=j+1;
if (x[m][0]==0)j=j+1;
if (j==2)px=100;
if (px>50)op=1000;
if (op<minv)maxm=m;
if (op<minv)minv=op;
}
for (m=0;m<42;m++){
z=x[m][maxn]/x[maxm][maxn];
if (maxm==m)z=0;
for (n=0;n<82;n++){
x[m][n]=x[m][n]-z*x[maxm][n];
}
}
maxv=0;
maxn=999;
for (n=1;n<82;n++){
if (x[0][n]>maxv)maxn=n;
if (x[0][n]>maxv)maxv=x[0][n];
}
System.out.println(maxn);
if (maxn>900)t1=1000;
t1=t1+1;
}
for (s=1;s<11;s++){
n=2*s-1;
x[0][n]=1/cs[s];
x[0][n+1]=1/xs[s];
}
maxv=0;
maxn=999;
for (n=1;n<62;n++){
if (x[0][n]>maxv)maxn=n;
if (x[0][n]>maxv)maxv=x[0][n];
}
System.out.println(maxn);
t2=0;
while(t2<100){
minv=999;
maxm=999;
for (m=1;m<42;m++){
under=x[m][maxn];
px=0;
if (under==0)px=100;
if (px>50)under=1;
op=x[m][0]/under;
if (op<0)px=100;
j=0;
if (under<0)j=j+1;
if (x[m][0]==0)j=j+1;
if (j==2)px=100;
if (px>50)op=1000;
if (op<minv)maxm=m;
if (op<minv)minv=op;
}
for (m=0;m<42;m++){
z=x[m][maxn]/x[maxm][maxn];
if (maxm==m)z=0;
for (n=0;n<62;n++){
x[m][n]=x[m][n]-z*x[maxm][n];
}
}
maxv=0;
maxn=999;
for (n=1;n<62;n++){
if (x[0][n]>maxv)maxn=n;
if (x[0][n]>maxv)maxv=x[0][n];
}
System.out.println(maxn);
if (maxn>900)t2=1000;
t2=t2+1;
}
p2=0;
for (n=1;n<21;n++){
p1=0;
for (m=1;m<42;m++){
if (x[m][n]==0)p1=p1+1;
}
if (p1==40)p2=p2+1;
}
System.out.println(p2);
t3=0;
if (p2<20)t3=1000;
while (t3<100){
for (s=1;s<11;s++){
n=2*s-1;
for (m=1;m<42;m++){
if (x[m][n]>0)cs[s]=x[m][0]/x[m][n];
if (x[m][n]<0)cs[s]=x[m][0]/x[m][n];
}
n=2*s;
for (m=1;m<42;m++){
if (x[m][n]>0)xs[s]=x[m][0]/x[m][n];
if (x[m][n]<0)xs[s]=x[m][0]/x[m][n];
}
}
t3=1000;
}
t4=t4+1;
}
for (s=1;s<11;s++){
System.out.println(cs[s]);
System.out.println(xs[s]);
}
}
}
最終更新:2010年06月19日 10:37