class pro{
public static void main(String args[]){
double h;
double a[][]=new double[2002][4002];
int p2[]=new int[2001];
int p3[]=new int[2001];
int m,n,px;
double c1,c2;
double maxv,minv;
double x1,x2,z;
int maxn,maxm;
int t1;
int p1;
h=0.001;
for (m=0;m<2002;m++){
for (n=0;n<4002;n++){
a[m][n]=0;
}
}
for (m=1;m<2001;m++){
a[m][m]=1;
}
for (m=1;m<2002;m++){
a[m][m+2000]=1;
}
for (m=1;m<2001;m++){
a[m][0]=h;
}
for (n=1;n<2001;n++){
a[2001][n]=1;
}
for (n=1;n<1001;n++){
c1=0.001*(n-1);
c2=0.001*n;
if (c1==0)c1=0.000001;
a[0][n]=(Math.log(c2)-Math.log(c1))/h;
a[0][1000+n]=a[0][n];
}
a[2001][0]=1;
maxv=0;
maxn=999;
for (n=1;n<4002;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=9999;
for (m=1;m<2002;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<2002;m++){
z=a[m][maxn]/a[maxm][maxn];
if (maxm==m)z=0;
for (n=0;n<4002;n++){
a[m][n]=a[m][n]-z*a[maxm][n];
}
}
maxv=0;
maxn=9999;
for (n=1;n<4002;n++){
if (a[0][n]>maxv)maxn=n;
if (a[0][n]>maxv)maxv=a[0][n];
}
System.out.println(maxn);
if (maxn>9000)t1=10000;
}
for (n=1;n<2001;n++){
p1=0;
p3[n]=0;
for (m=1;m<2002;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;
}
p2[n]=0;
if (p1==2000)p2[n]=100;
}
for (n=1;n<2001;n++){
if (p2[n]>50)System.out.println(n);
}
}
}
最終更新:2010年06月25日 01:08