统计计算作业

#########第二题#######

X=rep(0,100)

for(i in 1:100){

  u=runif(1);

  if(u<0.3){

    X[i]=1    }

else X[i]=2}

n=0

for(i in 1:length(X)){

  if(X[i]==1){

    n=n+1

  }

}

a=n/length(X)*100

sprintf('重复100次,1出现的百分比为:%f%%',a)


 

X=rep(0,1000)

for(i in 1:1000){

  u=runif(1);

  if(u<0.3){

    X[i]=1    }

  else X[i]=2}

n=0

for(i in 1:length(X)){

  if(X[i]==1){

    n=n+1

  }

}

a=n/length(X)*100

sprintf('重复1000次,1出现的百分比为:%f %%',a)


 

X=rep(0,10000)

for(i in 1:10000){

  u=runif(1);

  if(u<0.3){

    X[i]=1    }

  else X[i]=2}

n=0

for(i in 1:length(X)){

  if(X[i]==1){

    n=n+1

  }

}

a=n/length(X)*100

sprintf('重复10000次,1出现的百分比为:%f%%',a)

#########第11题#####

##3##

x=rep(0,10)

n=0

for(i in 1:10){

  u=runif(1)

  x[i]=sin(pi/2*u)

}

sprintf('重复10次,生成的随机数为:')

print(x)

##4##

X=rep(0,10)

for(i in 1:10){

  u=runif(1);

  X[i]=tan(pi*u)

}

sprintf('重复10次,生成的随机数为:')

print(X)

#####21#####

#gx=x

t1=Sys.time()

c=1

x=rep(0,10)

n=0

while(n!=10){

  u1=runif(1)

  Y=-log(u1)

  u2=runif(1)

  if (u2

    n=n+1

    x[n]=Y

  }

}

sprintf('重复10次,生成的随机数为:')

print(x)

t2=Sys.time()

t2-t1

#c=1执行step1的平均次数为1次

#执行时间0.008308887 secs

#gx=2x

t1=Sys.time()

c=1/2

x=rep(0,10)

n=0

while(n!=10){

  u1=runif(1)

  Y=-log(u1)

  u2=runif(1)

  if (u2

    n=n+1

    x[n]=Y

  }

}

sprintf('重复10次,生成的随机数为:')

print(x)

t2=Sys.time()

t2-t1

#c=1/2执行step1的平均次数为0.5次

#执行时间0.00822401

#####24#####

##逆变换法

X=rep(100)

for(i in 1:100){

  u=runif(1);

  if(u<0.5){

    X[i]=log(2*u)

  }

  else{

    X[i]=-log(2*(1-u))}

}

sprintf('重复100次,生成的随机数为:')

print(X)

##复合法

X=rep(100)

n=1

while(n!=101){

  u=runif(1);

  if(u<0.5){

    u1=runif(1)

    if(u1<0.5){

      X[n]=log(2*u1)

      n=n+1}}

  if(u>=0.5){

    u2=runif(1)

    if(u2>0.5){

      X[n]=-log(2*(1-u2))

      n=n+1}}

   

     

}

sprintf('重复100次,生成的随机数为:')

print(X)




 

你可能感兴趣的:(开发语言,r语言)