使用蒙特卡罗的概率

时间:2015-09-13 01:49:40

标签: r probability montecarlo

我需要在R中进行蒙特卡罗模拟以解决这个问题:

三名游客抵达一个拥有五家酒店的城镇。这三位游客每人签到另一家酒店的概率是多少?他们在同一家酒店签到的概率是多少?酒店具有相同的特点。

我迷失了它,我尝试使用下面的代码,但似乎没有用。

esperanza_Xn <- function(n,p,m) {
sim=0; q=1-p
for(i in 1:m){ 
   r=runif(n,1,p)
   e=2*r-1; X=0
   for(j in 1:n){
      X[j+1]=X[j]+e[j]
   }
   sim[i]=X[n+1]}
   a=paste("E(X_n) teórico=",n*(p-q))
   b=paste("E(X_n) Monte Carlo=",mean(sim))
   rbind(a,b)
}

实施例

esperanza_Xn(100,5,3)

1 个答案:

答案 0 :(得分:1)

摆脱所有for循环:

sim.result <- replicate(n, sample(1:p, m, replace=TRUE))
hotel.count <- apply(sim.result, 2, function(x) length(unique(x)))

然后是计算比例的问题:

# Probability of all different hotel assignment
mean(hotel.count == m)

# Probability of same hotel assignment
mean(hotel.count == 1)