package actor;
import tool.*;
public class pro {
String[] art=new String[50000];
int[][] point=new int[5000][200];
String[] data=new String[50000];
int s,sx,datanumber;
String[] dic=new String[5000];
int[][] v=new int[5000][200];
int[] number_dic=new int[5000];
int[] y=new int[5000];
int[] v1=new int[5000];
int[] v2=new int[5000];
double[] p=new double[50];
double[] q=new double[50];
int number;
double[] rate=new double[5000];
public static void main(String[] args) {
pro r=new pro();
}
pro(){
readfile sub2=new readfile();
sub2.makedata("data.csv","UTF-8");
datanumber=sub2.datanumber;
data=sub2.data;
int sx=0;
for(s=2;s<datanumber+1;s++){
String[] x=data[s].split(",");
art[s-1]=x[0];
for(sx=1;sx<x.length;sx++){
if(x[sx].indexOf("○")>-1)point[s-1][sx]=100;
}
number=x.length-1;
}
datanumber=datanumber-1;
int tx,n;
for(n=1;n<41;n++){
int c1=0;
int c2=0;
for(s=1;s<datanumber+1;s++){
for(sx=1;sx<number+1;sx++){
int h=0;
if(point[s][sx]>50)h=h+1;
int j=0;
for(tx=1;tx<n+1;tx++){
if(point[s][sx+tx]>50)j=100;
}
if(j<50)h=h+1;
if(point[s][sx+n+1]>50)h=h+1;
if(sx+n+1>number)h=0;
if(h==3)c1=c1+1;
h=0;
if(point[s][sx]>50)h=h+1;
j=0;
for(tx=1;tx<n+1;tx++){
if(point[s][sx+tx]>50)j=100;
}
if(j<50)h=h+1;
if(point[s][sx+n+1]<50)h=h+1;
if(sx+n+1>number)h=0;
if(h==3)c2=c2+1;
}
}
p[n]=(double)c1/(c1+c2);
}
for(n=1;n<41;n++){
double q1=1;
for(s=n+1;s<41;s++){
q1=(1-p[s])*q1;
}
q[n]=q1;
}
for(s=1;s<datanumber+1;s++){
int n1=0;
for(sx=1;sx<number+1;sx++){
if(point[s][sx]>50)n1=sx;
}
int n2=number-n1;
int n3=0;
for(sx=1;sx<number+1;sx++){
int h=0;
if(point[s][sx]>50)h=h+1;
if(n3==0)h=h+1;
if(h==2)n3=sx;
}
if(n2>40)n2=40;
rate[s]=q[n2];
}
double z1=0;
double z2=0;
for(s=1;s<datanumber+1;s++){
int m1=0;
for(sx=1;sx<number+1;sx++){
if(point[s][sx]>50)m1=m1+1;
}
z1=z1+rate[s]*m1;
z2=z2+rate[s];
}
z1=0;
z2=0;
for(s=1;s<datanumber+1;s++){
int m1=0;
for(sx=1;sx<number+1;sx++){
if(point[s][sx]>50)m1=sx;
}
int m2=0;
for(sx=1;sx<number+1;sx++){
int h=0;
if(point[s][sx]>50)h=h+1;
if(m2==0)h=h+1;
if(h==2)m2=sx;
}
v1[s]=m2;
v2[s]=m1;
}
int y1;
for(y1=1;y1<11;y1++){
z1=0;
z2=0;
for(s=1;s<datanumber+1;s++){
if(v2[s]<v1[s]+4*y1) z1=z1+rate[s];
z2=z2+rate[s];
}
System.out.println(y1+","+(1-z1/z2));
}
}
int numx(String str){
int nx;
nx=0;
try{
nx=Integer.parseInt(str);
}catch (Exception e) {}
return nx;
}
}
最終更新:2016年08月17日 12:20