package ken;
public class pro {
int[] t=new int[9000];
int[] r=new int[9000];
int[] point=new int[9000];
double[][] p=new double[20][11];
double[][] mu=new double[11][11];
double[][] sig=new double[11][11];
double[][] q=new double[50][11];
int number_group;
int number_credit;
int numberx;
double[][] ps=new double[20][11];
int number,number_r,number_t;
public static void main(String[] args) {
pro t=new pro();
}
pro(){
number=1000;
number_t=10;
number_r=10;
int s,sx;
for(s=1;s<number+1;s++){
t[s]=(int)(10*Math.random())+1;
r[s]=(int)(10*Math.random())+1;
point[s]=(int)(100*Math.random())+1;
}
number_group=3;
for(s=1;s<number_r+1;s++){
for(sx=1;sx<4;sx++){
p[s][sx]=Math.random();
}
}
for(s=1;s<number_r+1;s++){
double p1=0;
for(sx=1;sx<number_group+1;sx++){
p1=p1+p[s][sx];
}
for(sx=1;sx<number_group+1;sx++){
p[s][sx]=p[s][sx]/p1;
}
}
number_credit=4;
for(s=1;s<number_t+1;s++){
for(sx=1;sx<number_credit+1;sx++){
q[s][sx]=Math.random();
}
}
for(s=1;s<number_t+1;s++){
double p1=0;
for(sx=1;sx<number_credit+1;sx++){
p1=p1+q[s][sx];
}
for(sx=1;sx<number_credit+1;sx++){
q[s][sx]=q[s][sx]/p1;
}
}
for(s=1;s<number_group+1;s++){
for(sx=1;sx<number_credit+1;sx++){
mu[s][sx]=50+10*Math.random();
sig[s][sx]=10+3*Math.random();
}
}
nobu sub=new nobu();
sub.point=point;
sub.mu=mu;
sub.sig=sig;
sub.p=p;
sub.q=q;
}
}
package ken;
public class nobu {
int[] t=new int[9000];
int[] r=new int[9000];
int[] point=new int[9000];
double[][] p=new double[20][11];
double[][] mu=new double[11][11];
double[][] sig=new double[11][11];
double[][] q=new double[50][11];
int number_group;
int number_credit;
int numberx;
double[][] ps=new double[11][11];
void makedata(){
int tr;
for(tr=1;tr<11;tr++){
int[] subx=new int[1000];
int subnumber;
int sx,s;
sx=0;
for(s=1;s<1001;s++){
if(r[s]==tr)sx=sx+1;
if(r[s]==tr)subx[sx]=s;
}
subnumber=sx;
int n;
int g1,c1;
for(g1=1;g1<number_group+1;g1++){
double py=1;
for(s=1;s<subnumber+1;s++){
sx=subx[s];
int t1=t[sx];
double sump=0;
for(c1=1;c1<number_credit+1;c1++){
double p4=q[t1][c1]*f(point[sx],mu[g1][c1],sig[g1][c1]);
sump=sump+p4;
}
py=py*sump;
}
ps[tr][g1]=py;
}
double p7=0;
for(g1=1;g1<number_group+1;g1++){
p7=p7+ps[tr][g1];
}
for(g1=1;g1<number_group+1;g1++){
ps[tr][g1]=ps[tr][g1]/p7;
}
}
}
double f(double x1,double mux,double sigx){
double pi,f1,f2;
pi=Math.PI;
f2=Math.sqrt(2*pi*sigx*sigx);
f1=-(x1-mux)*(x1-mux)/(2*sigx*sigx);
return Math.exp(f1)/f2;
}
}
package ken;
public class hide {
int[] t=new int[9000];
int[] r=new int[9000];
int[] point=new int[9000];
double[][] p=new double[20][11];
double[][] mu=new double[11][11];
double[][] sig=new double[11][11];
double[][] q=new double[50][11];
int number_group;
int number_credit;
int numberx;
double[][] ps=new double[11][11];
double[] pon=new double[1001];
double[][] mus=new double[11][11];
double[][] sigs=new double[11][11];
void maedata(){
int s,g1,c1;
for(g1=1;g1<number_group+1;g1++){
for(c1=1;c1<number_credit+1;c1++){
for(s=1;s<1001;s++){
int t1=t[s];
int r1=r[s];
double p1=p[r1][g1];
double q1=q[t1][c1];
pon[s]=p1*q1;
}
double a1=0;
double a2=0;
for(s=1;s<1001;s++){
a1=a1+pon[s]*point[s];
a2=a2+pon[s];
}
mus[g1][c1]=a1/a2;
a1=0;
a2=0;
for(s=1;s<1001;s++){
a1=a1+pon[s]*(point[s]-mus[g1][c1])*(point[s]-mus[g1][c1]);
a2=a2+pon[s];
}
sigs[g1][c1]=Math.sqrt(a1/a2);
}}
}
}
package ken;
class toku{
int[] t=new int[9000];
int[] r=new int[9000];
int[] point=new int[9000];
double[][] p=new double[20][11];
double[][] mu=new double[11][11];
double[][] sig=new double[11][11];
double[][] q=new double[50][11];
int number_group;
int number_credit;
int numberx;
double[][] qs=new double[11][11];
void makedata(){
int tr;
for(tr=1;tr<11;tr++){
int[] subx=new int[1000];
int subnumber;
int sx,s;
sx=0;
for(s=1;s<1001;s++){
if(t[s]==tr)sx=sx+1;
if(t[s]==tr)subx[sx]=s;
}
subnumber=sx;
int n;
int g1,c1;
for(c1=1;c1<number_credit+1;c1++){
double py=1;
for(s=1;s<subnumber+1;s++){
sx=subx[s];
int r1=r[sx];
double sump=0;
for(g1=1;g1<number_group+1;g1++){
double p4=p[r1][g1]*f(point[sx],mu[g1][c1],sig[g1][c1]);
sump=sump+p4;
}
py=py*sump;
}
qs[tr][c1]=py;
}
double p7=0;
for(c1=1;c1<number_credit+1;c1++){
p7=p7+qs[tr][c1];
}
for(c1=1;c1<number_credit+1;c1++){
qs[tr][c1]=qs[tr][c1]/p7;
}
}
}
double f(double x1,double mux,double sigx){
double pi,f1,f2;
pi=Math.PI;
f2=Math.sqrt(2*pi*sigx*sigx);
f1=-(x1-mux)*(x1-mux)/(2*sigx*sigx);
return Math.exp(f1)/f2;
}
}
最終更新:2016年08月15日 18:38