J'ai un problème de simulation de dés classique, que j'ai du mal à implémenter depuis que je suis nouveau avec la syntaxe R. La fonction (que j'ai appelé simu) fonctionne comme suit:Fonction pour le jeu de simulation en R
- Commencez avec 0 points
- Simuler n tirages au sort de trois dés à six faces
- Pour chaque tirage:
- Si la somme de trois dés> 12 -> 1 points
- Si la somme des trois dés < 6 -> -1 point
- Dans le cas contraire (par exemple somme comprise entre 6 et 12):
- Si trois dés ont même nombre -> +5 points
- Sinon -> 0 points
- Retour Nombre total de points obtenus à la fin des simulations de n
Après avoir essayé un certain nombre de méthodes que je semble être assez proche avec:
simu <- function(n){
k <- 0
for(i in 1:n) {
a <- sample(y,1,replace=TRUE)
b <- sample(y,1,replace=TRUE)
c <- sample(y,1,replace=TRUE)
if ((a + b + c) > 12) {
k <- k+1
} else if ((a + b + c) < 6) {
k <- k-1
} else if ((a == b) & (b == c)) {
k <- k+5
} else k <- 0
}
return(k)
}
Le problème semble être que je ne parviens pas à itérer de nouvelles simulations (pour a, b, c) pour chaque "i" de la fonction.
Il ne semble pas qu'il y ait quelque chose de mal avec la fonction, vous êtes juste 'réinitialisez K' à zéro la plupart du temps, donc si vous appelez' simu (n) '' avec n> 1' les chances Est-ce que vous obtiendrez 'k <- 0'. N'est-ce pas que "Sinon 0 points" signifie "Sinon ajouter des points zéro"? –
Vous avez raison - la dernière déclaration aurait dû être k <- k + 0. Merci. – Macter