class lp{
double[][] a=new double[4][6];
double[] b=new double[4];
int h,m,n,nx,mx;
double maxn,minm,u,z;
int s,s1,s2,t;
public static void main(String [] args) {
lp test=new lp();
}
lp(){
a[1][1]=60;
a[1][2]=40;
a[2][1]=20;
a[2][2]=30;
a[3][1]=20;
a[3][2]=10;
a[1][3]=1;
a[2][4]=1;
a[3][5]=1;
b[1]=3800;
b[2]=2100;
b[3]=1200;
a[0][1]=400;
a[0][2]=300;
t=0;
while(t<100){
nx=makenx();
System.out.println(nx);
mx=0;
if(nx>0)mx=makemx();
System.out.println(mx);
if(mx>0)mat();
System.out.println(b[0]);
if(nx<1)t=1000;
}
}
void mat(){
for(m=0;m<4;m++){
z=a[m][nx]/a[mx][nx];
if(m==mx)z=0;
for(n=1;n<6;n++){
a[m][n]=a[m][n]-z*a[mx][n];
}
b[m]=b[m]-z*b[mx];
}
}
int makemx(){
minm=9999;
mx=0;
for(m=1;m<4;m++){
h=0;
u=a[m][nx];
if(u==0)u=1;
if(a[m][nx]>0)h=h+1;
if(b[m]/u<minm)h=h+1;
if(h==2)minm=b[m]/a[m][nx];
if(h==2)mx=m;
}
return mx;
}
int makenx(){
maxn=0;
nx=0;
for(n=1;n<6;n++){
if(a[0][n]>maxn)nx=n;
if(a[0][n]>maxn)maxn=a[0][n];
}
return nx;
}
}
最終更新:2011年07月12日 12:12