アットウィキロゴ

lpp3445

class pro{
public static void main(String args[]){
double h;
double a[][]=new double[42][82];
double cs,ys,y1,y2,cps,yps;
double th;
double e;
int m,n,px,p1;
int p2[]=new int[41];
int p3[]=new int[41];
int maxn,maxm;
double maxv,minv;
double x1,x2,z;
int t1,t2,t3;
h=0.02;
th=1;
cs=0.35;
ys=0.35;
t3=0;
while(t3<5){
h=h/2;
t2=0;
while(t2<5){
for (m=0;m<42;m++){
for (n=0;n<82;n++){
a[m][n]=0;
}
}
for (m=1;m<41;m++){
a[m][m]=1;
}
for (m=1;m<42;m++){
a[m][m+40]=1;
}
for (m=1;m<41;m++){
a[m][0]=h;
}

for (n=1;n<11;n++){
a[41][n]=1;
a[41][n+10]=-1;
a[41][n+20]=-1;
a[41][n+30]=1;
}
for (n=1;n<11;n++){
a[0][n]=(Math.log(cs+n*h)-Math.log(cs+(n-1)*h))/h;
a[0][n+10]=(Math.log(cs-n*h)-Math.log(cs-(n-1)*h))/h;
y1=ys+(n-1)*h;
y2=ys+n*h;
a[0][n+20]=(Math.log(1-y2/th)-Math.log(1-y1/th))/h;
y1=ys-(n-1)*h;
y2=ys-n*h;
a[0][n+30]=(Math.log(1-y2/th)-Math.log(1-y1/th))/h;
}

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

t1=0;
while(t1<1000){
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<0)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 (maxm==m)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][n]>maxv)maxv=a[0][n];
}
System.out.println(maxn);
if (maxn>900)t1=10000;
t1=t1+1;
}

for (n=1;n<41;n++){
p1=0;
p2[n]=0;
p3[n]=0;
for (m=1;m<42;m++){
if (a[m][n]==0)p1=p1+1;
if (a[m][n]>0)p3[n]=m;
if (a[m][n]<0)p3[n]=m;
}
if (p1==40)p2[n]=100;
}

cps=cs;
yps=ys;

for (n=1;n<11;n++){
if (p2[n]>50)cps=cps+a[p3[n]][0]/a[p3[n]][n];
}

for (n=11;n<21;n++){
if (p2[n]>50)cps=cps-a[p3[n]][0]/a[p3[n]][n];
}

for (n=21;n<31;n++){
if (p2[n]>50)yps=yps+a[p3[n]][0]/a[p3[n]][n];
}

for (n=31;n<41;n++){
if (p2[n]>50)yps=yps-a[p3[n]][0]/a[p3[n]][n];
}

e=(cps-cs)*(cps-cs)+(yps-ys)*(yps-ys);
cs=cps;
ys=yps;
if (e<0.0001)t2=1000;
System.out.println(cs);
System.out.println(ys);
t2=t2+1;
}
t3=t3+1;
}








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