R Ping Pong的模拟循环

时间:2017-09-03 03:03:49

标签: r probability

我需要找到概率Pr(X = i),i = 2 ,. 。 。 ,当两个玩家A和B同意游戏的获胜者获得1分而输家获得0分时,使用R进行模拟;当一名球员领先2分或者比赛数达到6时,比赛结束。假设A和B赢得比赛的概率分别为2 3 y 1 3,并且每场比赛都是独立的。设X表示结束游戏所需的游戏数量。

我正在应用以下代码:

juegos<-rbinom(6,1,2/3)
juegos
A<-cumsum(juegos)
B<-cumsum(1-juegos)
K<-abs(A-B)==2

R<-rep(0,1000)
for(i in 1:1000)
{R[i]<-which.max(K)}
 R

但是当i = 2,4和6时,我不知道找到概率的下一步是什么。

1 个答案:

答案 0 :(得分:0)

以下是使用函数模拟单个匹配的一种方法:

# Function to simulate one match
one_match = function(p = 2/3){
  g = 0
  score = 0
  while (g < 6){
    g = g + 1
    # Play one game & update score
    if (runif(1) < p)
      score = score + 1
    else
      score = score - 1
    if (abs(score) == 2) break
  }
  return(g)
}

# Simulate matches
n_sims = 100000
outcomes = replicate(n_sims, one_match())
# Or, with a different winning probability, say p = 1/2
# outcomes = replicate(n_sims, one_match(p = 1/2))

# Estimate probabilities
probs = table(outcomes)/n_sims
print(probs)

干杯!