Skip to content

Instantly share code, notes, and snippets.

@icaroagostino
Created February 7, 2023 22:11
Show Gist options
  • Save icaroagostino/e2b9e5149d6b75989713eb97b4bce1c5 to your computer and use it in GitHub Desktop.
Save icaroagostino/e2b9e5149d6b75989713eb97b4bce1c5 to your computer and use it in GitHub Desktop.
# simular rolagem
roll <- function(dados, dif) {
resultados_dados <- sort(sample(1:10, dados, replace = T))
sucessos <- resultados_dados[resultados_dados >= dif]
n_1 <- length(resultados_dados[resultados_dados == 1])
if (n_1 > 0) {
if (n_1 == length(sucessos)) {
sucessos <- 0
} else if (n_1 > length(sucessos)) {
sucessos <- -1
} else {
sucessos <- sucessos[-(1:n_1)]
sucessos <- length(sucessos)
}
} else {
sucessos <- length(sucessos)
}
if (sucessos > 0) {
resolucao <- 'sucesso'
} else if (sucessos == 0) {
resolucao <- 'falha'
} else {
resolucao <- 'falha critica'
}
resultado <-
list(resultado_dados = resultados_dados,
qtde_de_1 = n_1,
qtde_sucessos = sucessos,
resolucao = resolucao)
resultado
}
####---####
# simular a mesma relogem multiplas vezes
multiple_roll <- function(dados, dif, replications) {
sim <- vector("character", length = replications)
for (i in 1:replications) {
sim[i] <- roll(dados, dif)$resolucao
}
sim <- plyr::count(sim)
sim$freq <- (sim$freq/replications)*100
sim
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment