アットウィキロゴ

lp4

package non;
 
 
public class pro {
 
  double[][] a=new double[6][6]; 
  double[] b=new double[6];
  int creditnumber,linenumber;
 int n,m,s,sx;
 
    public static void main(String[] args) {
       pro test=new pro();
    }
 
 pro(){   
 
creditnumber=5;     
linenumber=3;
 
a[0][1]=20;
a[0][2]=30;
a[1][1]=1;
a[1][2]=2;
a[2][1]=3;
a[2][2]=4;
a[3][1]=2;
a[3][2]=1;
a[1][3]=1;
a[2][4]=1;
a[3][5]=1;
b[1]=800;
b[2]=1800;
b[3]=1500;
 
n=search();
 
while(n>0){
n=search();
m=line(n);
if(n>0)cal(m,n);
}
 
System.out.println(b[0]);
 
 }  
 
 void cal(int m,int n){
int s,sx;
double z;  
for(s=0;s<linenumber+1;s++){    
z=a[s][n]/a[m][n];
if(s==m)z=0;
for(sx=1;sx<creditnumber+1;sx++){  
a[s][sx]=a[s][sx]-z*a[m][sx];
}
b[s]=b[s]-z*b[m];
}    
 
 
}
 
 
 int line(int nx){
int s,sx,h;
double a1,b1,c1,minc;
sx=0;
minc=999;
    for(s=1;s<linenumber+1;s++){ 
    a1=geta(s,nx);
    b1=getb(s);
    c1=9999;
    if(a1>0.001)c1=b1/a1;
    h=0;
    if(c1>0)h=h+1;
    if(c1==0)h=h+1;
    if(c1<minc)h=h+1;
    if(h==2)minc=c1;
    if(h==2)sx=s;
    }
return sx;    
}
int search(){
int s,sx;
double a1;
sx=0;
    for(s=1;s<creditnumber+1;s++){ 
    a1=geta(0,s);
    if(a1>0.01)sx=s;
    }
return sx;    
}
 
double getb(int s){
double a1,a2;
a1=b[s];
a2=0;
if(a1>0.01)a2=a1;
if(a1<-0.01)a2=a1;
return a2;
}
double geta(int s,int sx){
double a1,a2;
a1=a[s][sx];
a2=0;
if(a1>0.01)a2=a1;
if(a1<-0.01)a2=a1;
return a2;
}
}
 
最終更新:2013年12月03日 08:14