アットウィキロゴ

100opp

class pro{
public static void main(String args[]){
double c[]=new double[11];
double y[]=new double[11];
double cs[]=new double[11];
double ys[]=new double[11];
double th[]=new double[11];
double a[][]=new double[42][82];
int s,m,n,j;
int maxn,maxm,px;
double maxv,minv,x1,x2,z,e;
double h;
int t1,t3,t4;
int p1;
for (s=1;s<11;s++){
th[s]=1+0.1*s;
y[s]=0.5*th[s];
c[s]=y[s];
}

t4=0;
h=0.02;
while(t4<5){
t3=0;
h=h/2;
while(t3<100){
for (m=0;m<42;m++){
for (n=0;n<82;n++){
a[m][n]=0;
}
}

for (s=1;s<11;s++){
n=4*s-3;
a[0][n]=1/c[s];
a[0][n+1]=-1/c[s];
a[0][n+2]=1/(y[s]-th[s]);
a[0][n+3]=-1/(y[s]-th[s]);
}

for (m=1;m<41;m++){
a[m][m]=1;
}

for (m=1;m<42;m++){
a[m][m+40]=1;
}

for (s=1;s<11;s++){
n=4*s-3;
a[41][n]=1;
a[41][n+1]=-1;
a[41][n+2]=-1;
a[41][n+3]=1;
}
  
for (m=1;m<41;m++){
a[m][0]=h;
}

maxv=0;
maxn=999;
for (n=1;n<82;n++){
if (a[0][n]>maxv)maxn=n;
if (a[0][m]>maxv)maxv=a[0][n];
}
System.out.println(maxn);

t1=0;
while(t1<100){
minv=999;
maxm=999;
for (m=1;m<42;m++){
x1=a[m][maxn];
px=0;
if (x1==0)px=100;
if (x1<0)px=100;
if (px>50)x1=1;
x2=a[m][0]/x1;
if (px>50)x2=1000;  
if (x2<minv)maxm=m;
if (x2<minv)minv=x2;
}
System.out.println(maxm);

for (m=0;m<42;m++){
z=a[m][maxn]/a[maxm][maxn];
if (m==maxm)z=0;
for (n=0;n<82;n++){
a[m][n]=a[m][n]-z*a[maxm][n];
}  
}  

maxv=0;
maxn=999;
for (n=1;n<82;n++){
if (a[0][n]>maxv)maxn=n;
if (a[0][m]>maxv)maxv=a[0][n];
}
System.out.println(maxn);
if (maxn>900)t1=1000;
t1=t1+1;
}

for (s=1;s<11;s++){
cs[s]=c[s];
ys[s]=y[s];
}

for (s=1;s<11;s++){
p1=0;
n=4*s-3;
for (m=1;m<42;m++){
if (a[m][n]==0)p1=p1+1;
}
while(p1==40){
for (m=1;m<42;m++){
if (a[m][n]>0)cs[s]=c[s]+a[m][0]/a[m][n];
if (a[m][n]<0)cs[s]=c[s]+a[m][0]/a[m][n];
p1=0;
}
}

p1=0;
n=4*s-2;
for (m=1;m<42;m++){
if (a[m][n]==0)p1=p1+1;
}
while(p1==40){
for (m=1;m<42;m++){
if (a[m][n]>0)cs[s]=c[s]-a[m][0]/a[m][n];
if (a[m][n]<0)cs[s]=c[s]-a[m][0]/a[m][n];
p1=0;
}
}


p1=0;
n=4*s-1;
for (m=1;m<42;m++){
if (a[m][n]==0)p1=p1+1;
}
while(p1==40){
for (m=1;m<42;m++){
if (a[m][n]>0)ys[s]=y[s]+a[m][0]/a[m][n];
if (a[m][n]<0)ys[s]=y[s]+a[m][0]/a[m][n];
p1=0;
}
}

p1=0;
n=4*s;
for (m=1;m<42;m++){
if (a[m][n]==0)p1=p1+1;
}
while(p1==40){
for (m=1;m<42;m++){
if (a[m][n]>0)ys[s]=y[s]-a[m][0]/a[m][n];
if (a[m][n]<0)ys[s]=y[s]-a[m][0]/a[m][n];
p1=0;
}
}  
}
e=0;
for (s=1;s<11;s++){
e=e+(c[s]-cs[s])*(c[s]-cs[s]);
e=e+(y[s]-ys[s])*(y[s]-ys[s]);
}  
if (e<0.0001)t3=1000;
for (s=1;s<11;s++){
c[s]=cs[s];
y[s]=ys[s];
}
t3=t3+1;
}
t4=t4+1;
}

for (s=1;s<11;s++){
System.out.println(c[s]);
System.out.println(y[s]);
}

}
}
最終更新:2010年06月30日 21:24