Probab. Teórica x Probab. Simulada

library(purrr) # biblioteca para gerar as amostras
# da distribuicao unif. discreta. Nao existe no R base.

# Construcao da funcao que calcula as probabilidades
probab.conv <- function(j,N){
  n<- 1e7 # tamanho amostral
  x<- rdunif(n,b = N,a = 0) # geracao da amostra x
  y<- rdunif(n,b = N,a = 0) # geracao da amostra y
  if (j <= N & j>= 0){
        prob.teo <- (j+1)/(N+1)^2 # prob. teorica
      }else if(j > N & j <= 2*N){
        prob.teo <- (2*N-j+1)/(N+1)^2 # prob. teorica
      }else{
        prob.teo <- 0
   }
  prob.sim <- mean( (x+y)==j ) # prob. simulada
  return(list(probab.simulada=prob.sim, probab.teorica=prob.teo))
}

Exemplos (Aplicação para alguns j e N)

probab.conv(4,10) # j=4 e N=10
## $probab.simulada
## [1] 0.0413798
## 
## $probab.teorica
## [1] 0.04132231
probab.conv(10,7) # j=10 e N=7
## $probab.simulada
## [1] 0.0782813
## 
## $probab.teorica
## [1] 0.078125
probab.conv(20,7)
## $probab.simulada
## [1] 0
## 
## $probab.teorica
## [1] 0
probab.conv(-2,9)
## $probab.simulada
## [1] 0
## 
## $probab.teorica
## [1] 0