アットウィキロゴ

テレビ7

package tv;
 
import tool.*;
 
public class pro {
 
 int s,sx,datanumber;
 String[] data=new String[5000];
    String[][] artist=new String[5000][100];
    int[] number=new int[5000];
     String[] dic=new String[5000];
    double[] rate=new double[5000];
     int dicnumber;
      int[] point=new int[5000];
    int[][] art=new int[5000][6];
      double[] count=new double[5000];
    double[] sol=new double[5];
    double[] e=new double[5000];
 
    public static void main(String[] args) {
        pro test=new pro();
    }
    pro(){
 
        catchartist sub=new catchartist();
        sub.makedata();
        artist=sub.artist;
        number=sub.number;
        datanumber=sub.datanumber;
        dic=sub.dic;
        dicnumber=sub.dicnumber; 
 
        catchrate sub2=new catchrate();
        sub2.makedata();
        rate=sub2.r;
 
        for(s=1;s<dicnumber+1;s++){
        point[s]=pp();
        }
 
        int dx;
        String str;
 
        for(s=1;s<datanumber+1;s++){
        for(sx=1;sx<6;sx++){
        str=artist[s][sx];
        if(str==null)str="";
        art[s][sx]=0;
        for(dx=1;dx<dicnumber+1;dx++){
        if(str.equals(dic[dx]))art[s][sx]=dx;    
        }
        }
        }
 
        double c1;
 
        int tx,delta;
 
        for(delta=1;delta<10;delta++){
 
        for(s=1;s<datanumber+1;s++){
        c1=0;
        for(sx=1;sx<6;sx++){
        tx=art[s][sx];
        if(tx>0)c1=c1+(6-sx)*point[tx];
        }
        count[s]=c1;
        }
 
         double[][] xx=new double[5000][3];
 
 
         for(s=1;s<datanumber+1;s++){
         xx[s][1]=1;
         xx[s][2]=count[s];
         }
 
        ols sub4=new ols();
        sub4.datanumber=datanumber;
        sub4.number=2;
        sub4.y=rate;
        sub4.x=xx;
        sub4.makedata();
        sol=sub4.sol;
 
 
   int n,tr;
 
 
     double p1,p2,minp;
     minp=0;
   for(tr=1;tr<101;tr++){
 
n=play();
 
 
 
    minp=9999;
    sx=0;
    for(s=1;s<dicnumber+1;s++){
    p1=shuffle(n,s);
    if(p1<minp)sx=s;
    if(p1<minp)minp=p1; 
    }
 
 
     int c3,c2;
 
     c3=point[n];
     c2=point[sx];
     point[n]=c2;
     point[sx]=c3;
 
    }
 
   System.out.println(minp+","+sol[1]);
 
 
 
    }
 
 
for(s=1;s<dicnumber+1;s++){
 System.out.println(dic[s]+","+point[s]);   
}
 
 
 
 
    }
 
 
 
 
 
 
 
 
 
 
 
 
 
    int play(){
    return (int)(dicnumber*Math.random())+1;
    }
 
    double shuffle(int s1,int s2){
 
        int c1,s,sx,tx;
        double[] count_p=new double[5000];
 
        int txs;
 
        for(s=1;s<datanumber+1;s++){
        c1=0;
        for(sx=1;sx<6;sx++){
        tx=art[s][sx];
        txs=0;
        if(tx==s1)txs=s2;
        if(tx==s2)txs=s1;
        if(txs>0)tx=txs;
        if(tx>0)c1=c1+(6-sx)*point[tx];
        }
        count_p[s]=c1;
        }
 
        double e1;
     e1=0;
 
   for(s=1;s<datanumber+1;s++){
   e1=e1+(rate[s]-sol[1]-sol[2]*count_p[s])*(rate[s]-sol[1]-sol[2]*count_p[s]);    
   }
 
 
   return e1; 
    }
int pp(){
    int n;
 n=(int)(10*Math.random())+1;   
return n;
}
}
 
 
 
 
package tv;
 
 
public class ols {
 
    int s,s1,s2;
    int datanumber,number;
    double x1;
    double[][] a=new double[100][100];
     double[] b=new double[100];
     double[] y=new double[1000];
    double[][] x=new double[1000][10];
     double[] sol=new double[100];
 
    void makedata(){
 
 
 
     for(s1=1;s1<number+1;s1++){
    for(s2=1;s2<number+1;s2++){   
     x1=0;   
    for(s=1;s<datanumber+1;s++){
    x1=x1+x[s][s1]*x[s][s2];
    }
    a[s1][s2]=x1;
    }
    }
 
 
 
    for(s1=1;s1<number+1;s1++){
    x1=0;   
    for(s=1;s<datanumber+1;s++){
    x1=x1+x[s][s1]*y[s];
    }
    b[s1]=x1;
    }
 
    double z;
 
   for(s1=1;s1<number+1;s1++){
   for(s2=1;s2<number+1;s2++){   
   z=a[s2][s1]/a[s1][s1];  
   if(s1==s2)z=0;
   for(s=1;s<number+1;s++){
   a[s2][s]=a[s2][s]-z*a[s1][s];
   } 
   b[s2]=b[s2]-z*b[s1];
   }
   }
 
   for(s1=1;s1<number+1;s1++){
   sol[s1]=b[s1]/a[s1][s1];
   }
 
 
 
 
    }
}
最終更新:2014年04月25日 02:50