package ip;
import java.io.*;
public class pro {
int s,datanumber;
String[] data=new String[400000];
int[] point=new int[70000];
int[] seat=new int[70000];
int[] rank=new int[2000];
int[] v=new int[2000];
int[] v1=new int[2000];
int[] v2=new int[2000];
String[] date=new String[70000];
String[] dic=new String[7000];
int number;
int number_c;
int dicnumber=0;
String[] subdata=new String[80000];
public static void main(String[] args) {
pro test=new pro();
}
pro(){
readx("toho.csv");
int sx=0;
for(s=2;s<datanumber+1;s++){
int h=0;
String[] x=data[s].split(",");
point[s]=numx(x[7]);
seat[s]=numx(x[8]);
date[s]=x[6];
}
int h;
for(s=2;s<datanumber+1;s++){
h=0;
for(sx=1;sx<dicnumber+1;sx++){
if(date[s].equals(dic[sx]))h=100;
}
if(h<50)dicnumber=dicnumber+1;
if(h<50)dic[dicnumber]=date[s];
}
int sxs=0;
for(s=2;s<datanumber+1;s++){
sxs=0;
for(sx=1;sx<dicnumber+1;sx++){
if(date[s].equals(dic[sx]))sxs=sx;
}
v[sxs]=v[sxs]+point[s];
}
for(s=2;s<datanumber+1;s++){
sxs=0;
for(sx=1;sx<dicnumber+1;sx++){
if(date[s].equals(dic[sx]))sxs=sx;
}
if(v1[sxs]<1)v1[sxs]=point[s];
}
double[][] x=new double[10000][10];
double[] sol=new double[10];
double[] y=new double[10000];
for(s=1;s<dicnumber+1;s++){
x[s][1]=1;
x[s][2]=v1[s];
y[s]=v[s];
}
ols sub3=new ols();
sub3.datanumber=dicnumber;
sub3.number=2;
sub3.x=x;
sub3.y=y;
sub3.makedata();
sol=sub3.sol;
for(s=1;s<dicnumber+1;s++){
System.out.println(v1[s]);
}
}
void ranking(){
int r,s,sx,h;
int[] ch=new int[5000];
double maxu;
for (r = 1; r < dicnumber + 1; r++) {
sx = 0;
maxu = -999999;
for (s = 1; s < dicnumber + 1; s++) {
h = 0;
if (v[s] > maxu) h = h + 1;
if (ch[s] < 50) h = h + 1;
if (h == 2) maxu = v[s];
if (h == 2) sx = s;
}
rank[r] = sx;
ch[sx] = 100;
}
}
void writexml(String file){
int s,sx;
try{
PrintWriter pw = new PrintWriter (new BufferedWriter(new FileWriter(file)));
for(s=1;s<number_c+1;s++){
pw.println(subdata[s]);
}
System.out.println("ファイルに書きこみました。");
pw.close();
} catch(IOException ep){ System.out.println("入出力エラーです。"); }
}
int numx(String str){
int nx;
nx=0;
try{
nx=Integer.parseInt(str);
}catch (Exception e) {}
return nx;
}
void readx(String file){
String str;
BufferedReader br;
int s;
s=0;
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
while((str = br.readLine()) != null) {
s=s+1;
data[s]=str;
}
br.close();
} catch (IOException e) {System.out.println(e);}
datanumber=s;
}
}
package ip;
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];
}
}
}
最終更新:2016年07月02日 14:13