package base;
public class cycle {
double[] p=new double[6];
int point;
int[] base=new int[5];
int out;
int makedata(){
point=0;
int inn;
for(inn=1;inn<10;inn++){
play();
}
return point;
}
void play(){
out=0;
int s;
for(s=1;s<4;s++){
base[s]=0;
}
while(out<3){
hit();
}
}
void one(){
if(base[3]==1)point=point+1;
if(base[3]==1)base[3]=0;
if(base[2]==1)base[3]=1;
if(base[2]==1)base[2]=0;
if(base[1]==1)base[2]=1;
if(base[1]==1)base[1]=0;
base[1]=1;
}
void two(){
if(base[3]==1)point=point+1;
if(base[3]==1)base[3]=0;
if(base[2]==1)point=point+1;
if(base[2]==1)base[2]=0;
if(base[1]==1)base[3]=1;
if(base[1]==1)base[1]=0;
base[2]=1;
}
void three(){
if(base[3]==1)point=point+1;
if(base[3]==1)base[3]=0;
if(base[2]==1)point=point+1;
if(base[2]==1)base[2]=0;
if(base[1]==1)point=point+1;;
if(base[1]==1)base[1]=0;
base[3]=1;
}
void four(){
if(base[3]==1)point=point+1;
if(base[3]==1)base[3]=0;
if(base[2]==1)point=point+1;
if(base[2]==1)base[2]=0;
if(base[1]==1)point=point+1;;
if(base[1]==1)base[1]=0;
point=point+1;
}
void hit(){
double r1=Math.random();
double[] q=new double[6];
int s;
q[0]=0;
for(s=1;s<6;s++){
q[s]=q[s-1]+p[s];
}
int sxs=1;
for(s=1;s<6;s++){
if(r1>q[s])sxs=s+1;
}
if(sxs==1)one();
if(sxs==2)two();
if(sxs==3)three();
if(sxs==4)four();
if(sxs==5)out=out+1;
}
}
package base;
public class pro {
double[] p=new double[6];
int[] point=new int[10001];
double avg,sig;
public static void main(String[] args) {
pro t=new pro();
}
pro(){
p[1]=0.1;
p[2]=0.1;
p[3]=0.1;
p[4]=0.1;
p[5]=0.6;
int px=0;
int tr;
for(tr=1;tr<10001;tr++){
cycle sub=new cycle();
sub.p=p;
point[tr]=sub.makedata();
}
int s;
double a1=0;
for(s=1;s<10001;s++){
a1=a1+point[s];
}
a1=a1/10000;
double s1=0;
for(s=1;s<10001;s++){
s1=s1+(point[s]-a1)*(point[s]-a1);
}
s1=Math.sqrt(s1/10000);
System.out.println(a1+"△"+s1);
}
}
最終更新:2017年10月02日 17:14