33 votes

Combien de rouleaux faut-il pour arriver à six pièces ?

Je suis en train de concevoir un microRPG et j'ai besoin d'aide pour calculer les probabilités afin de pouvoir prendre une décision éclairée sur le nombre de pièces à utiliser au départ (pour contrôler la durée de la session et la frustration en début de partie).

Voici le mécanisme des dés, simplifié pour la situation qui me préoccupe :

  • Vous commencez avec 2 pièces.
  • Pour résoudre une action, lancez 2d6.
  • Si au moins un dé sort SOUS votre nombre de pièces, vous GAGNEZ et gagnez une pièce.

Combien de rouleaux faudra-t-il en moyenne pour obtenir 6 pièces ?

Comment cela change-t-il si le joueur commence avec 3 pièces au lieu de 2 ?

Je suppose <a href="http://anydice.com/">Anydice </a>est l'outil par défaut pour cela, mais toute réponse qui fournit des graphiques/calculs similaires serait également appréciée.

0 votes

J'aime votre idée. Pourriez-vous expliquer le système un peu plus en détail ? Peut-être en utilisant le forum, et non la question. Merci beaucoup.

4 votes

@AlbertMasclans Stack Exchange n'a pas de forum traditionnel, mais vous pouvez me trouver dans Chat sur les jeux de rôle de manière assez constante.

51voto

Réponses

Vous trouverez ci-dessous le nombre d'étapes/roulements prévus pour arriver à 6 pièces :

  • Etapes pour passer de 2 pièces à 6 pièces = 7.52631
  • Etapes pour passer de 3 pièces à 6 pièces = 4.25833
  • Etapes pour passer de 4 à 6 pièces = 2.45833
  • Etapes pour passer de 5 à 6 pièces = 1.125

Solution

La meilleure façon de résoudre ce problème en général n'est pas Anydice, mais avec un outil appelé chaînes de Markov. Mais commençons par les probabilités de base.

  • Tout d'abord, définissons votre état . A état est le nombre de pièces que vous avez actuellement. Donc, si vous avez 2 pièces, vous êtes dans la catégorie état 2 alors que si vous avez 3 pièces, vous êtes en état 3 .

  • La probabilité de rouler sous tout nombre d'un d6 est donné par ce qui suit : \$ \frac {x-1}{6}\$ ; par exemple, pour obtenir un résultat inférieur à 2, il faut obtenir un 1, qui est un \$$. \frac 1 chance sur 6, ou une chance sur 5. \frac {x-1}{6} = \frac {2-1}{6} = \frac 1 chance sur 6

  • L'inverse est vrai. Pour rouler au moins n'importe quel nombre sur un d6, c'est "1 - Probabilité (rouler en dessous de ce nombre)" ; donc pour obtenir au moins un 2, la probabilité est égale à no roulant sous un 2. La formule est \$1- \frac {x-1}{6} = \frac {7-x}{6}\$

  • La probabilité de lancer 2d6 et d'obtenir au moins un sous un certain nombre, est égale à la probabilité de lancer 2d6 et de lancer les deux avec au moins ce numéro deux fois. En d'autres termes, la seule façon de "rater" votre jet est que les deux d6 soient au moins égaux à ce nombre cible. Le calcul est le suivant : " pas de Pr(lancer au moins ce nombre) deux fois ", et la formule est " 1 - Pr(lancer au moins ce nombre) ". 2 " qui est égal à : \$1 - \left ( \frac {7-x}{6} \right )^2\$

  • La probabilité de passer de état x a état x+1 est la même que la probabilité de lancer 2d6 avec au moins un sous. x En d'autres termes, la probabilité est la même que si l'on ne lance pas au moins une carte. x deux fois.

Solution

Vous avez donc la chaîne de Markov :

Chain with variables

Les flèches allant d'un cercle à l'autre représentent la probabilité de passer à l'état suivant. Les flèches partant d'un cercle et revenant vers lui-même représentent les probabilités de rester dans le même état.

Et comme il y a cinq états (de 2 à 6, il n'y a aucun moyen de revenir à un état antérieur), il s'agit de la chaîne complète :

Full chain

Maintenant, à partir de cette chaîne, construisez ce qu'on appelle une matrice de transition qui décrit toutes les probabilités de changement d'état sous forme mathématique.

enter image description here

Vous pouvez en savoir plus sur les matrices de transition en ligne. En gros, elle représente la probabilité de passer d'un état situé à gauche à l'état situé en haut. Ainsi, pour passer de état 2 retour à état 2 est de 0,6944, tandis que la probabilité qu'il aille à état 4 est 0, puisque vous ne pouvez passer qu'à un seul état à la fois.

Ici, nous faisons quelques calculs pour trouver le nombre attendu de pas de tout état a état 6 . Pour ce faire, nous résolvons les équations qui découlent de la matrice de transition. Je ne vais pas les expliquer en détail, je vais simplement montrer les équations finales.

Soit \$h(i,j)\$ être le nombre attendu de pas de l'état i a l'état j .

\begin {alignement} h(2,6) &= 1 + (0.694) \times h(2,6) + (0.306) \times h(3,6) \\ h(3,6) &= 1 + (0.444) \times h(3,6) + (0.556) \times h(4,6) \\ h(4,6) &= 1 + (0.25) \times h(4,6) + (0.75) \times h(5,6) \\ h(5,6) &= 1 + (0.111) \times h(5,6) + (0.889) \times h(6,6) \\ h(6,6) &= 0 \end {alignement}

Réponse :

Le problème est maintenant réduit à un système d'équations. En les résolvant, on obtient :

\begin {alignement} h(2,6) &= 7.52631 \\ h(3,6) &= 4.25833 \\ h(4,6) &= 2.45833 \\ h(5,6) &= 1.125 \\ h(6,6) &= 0 \end {alignement}

20 votes

@nitsua60 J'ai nommé mon compte d'après un concept mathématique lorsque je l'ai créé à la pile physique il y a des années. Je n'aurais jamais pensé à l'époque que j'utiliserais ce même concept pour résoudre des problèmes à la pile RPG des années plus tard. Haha

4 votes

@Yakk Je suppose que c'est le cas regards surcharge en raison des multiples étapes. Cependant, je pense que c'est aussi plus intuitif - la plupart des gens ignoreront les mathématiques de toute façon, les diagrammes donnent une bonne idée de ce qui se passe, au-delà des chiffres. En outre, je voulais répondre à plus que ce que le PO demandait

0 votes

Pouvez-vous utiliser cette technique pour calculer la variance et l'espérance ?

12voto

Dale M Points 183702

Vous pouvez le faire de manière analytique en utilisant les distributions géométriques . Anydice rencontre des problèmes avec celles-ci car elles sont infinies et les programmes informatiques n'aiment pas les boucles infinies.

La distribution de probabilité d'être en dessous du nombre de pièces que vous avez actuellement est une distribution géométrique et nous pouvons utiliser anydice pour obtenir les probabilités de chacun d'entre eux de n=2 à n=5 :

n     p     1/p   sum(1/p)
2  .3056   3.272   7.530
3  .5556   1.800   4.258
4  .7500   1.333   2.458
5  .8888   1.125   1.125
           7.434

La moyenne est simplement 1/p et la moyenne pour passer de 2 à 6 est, par le théorème de l'addition des probabilités, simplement la somme de chaque moyenne ou 7,530.

Il est intéressant de noter que les distributions géométriques sont sans mémoire ce qui signifie que votre chance de progresser lors de votre prochain lancer est indépendante du nombre de lancers que vous avez effectués. Ainsi, si vous avez 2 pièces et que vous lancez, vous avez 0,3056 chance d'en obtenir 3 et 0,6944 chance d'en avoir encore 2 - si vous avez encore 2, votre nombre moyen de lancers pour atteindre 6 est de 0,6944. reste 7.530 ; si vous en avez 3, il baisse immédiatement à 4.258. Avec de la malchance, vous pouvez obtenir un lot plus que 7.434 (théoriquement, vous pourriez ne jamais y arriver).

0 votes

Cela ne me semble pas tout à fait correct (bien que ce soit approximativement le cas). Je n'en suis pas sûr. Il ne semble pas intuitif que l'on puisse ajouter des moyens géométriques de cette manière. S'agit-il d'un théorème formel, par hasard ? J'aimerais me documenter à ce sujet et vérifier mes propres calculs.

1 votes

Si vous pouviez éditer la réponse doit être précédée des résultats, en moyenne des jets effectués, ce serait génial. (I penser Je lis le tableau correctement, mais je veux être sûr de ne pas l'interpréter de manière erronée. Le Stack préfère les réponses qui ne laissent pas la dernière étape comme un exercice pour le lecteur).

3 votes

@markovchain Oui, vous pouvez ajouter des valeurs attendues de cette manière. théorème : E[x+y]=E[x]+E[y], quels que soient x et y.

9voto

thumbtackthief Points 197

Voici un peu de Python pour ajouter quelques résultats expérimentaux aux résultats théoriques que d'autres ont ajoutés :

import random

def die_roll():
    dice = [random.randint(1, 6), random.randint(1, 6)]
    return dice

def play_game(starting_coins):
    coins = starting_coins
    rolls = 0
    while coins < 6:
        dice = die_roll()
        rolls += 1
        if dice[0] < coins or dice[1] < coins:
            coins += 1
    return rolls

turns = 0
rolls = 0

for i in range(100000):
    turns += 1
    rolls += play_game(2)

print float(rolls) / turns

Résultats :

  Starting coins | Average rolls (100K trials)  
  -------------- | ---------------------------  
  2              | 7.527408 
  3              | 4.25263 
  4              | 2.4624 
  5              | 1.12414

1 votes

Oui, j'ai également effectué une simulation de Monte Carlo (sauf que mon code n'est pas aussi élégant) et j'ai obtenu les mêmes résultats.

1 votes

Vous n'avez sûrement pas reçu le même résultats...

0 votes

@nitsua60 - C'est vrai, je devrais préciser - très, très proche : < .05%. :)

5voto

Julie Points 3850

Environ 7½ rouleaux

Il s'agit d'un problème assez simple, car votre système ne stocke qu'un tout petit élément d'état - le nombre de pièces.

Une fois que nous connaissons l'état, nous connaissons le comportement de votre système à partir de ce point. Ce qui signifie que nous pouvons décomposer votre système en problèmes simples, puis les additionner pour trouver la moyenne que vous voulez.

Nous allons donc commencer par résoudre le problème le plus simple : passer de 5 à 6 pièces.

A chaque fois que tu essaies, il y a un problème. \frac {2}{6})^2\$ chance de transition (\$( \frac {2}{6})^2\$ est la chance pour vous de ne pas faire de transition - les deux dés tombent sur un 5 ou un 6, 2 chances sur 6). Il se trouve que si vous avez une \$X%\$ chance de faire une transition, cela prend en moyenne \$X%\$. \frac {100\%}{X%}\N- fois pour faire cette transition.

Alors \frac {9}{8}\$ pas (ou 1,125) en moyenne.

Passer de 4 à 5, ça demande du temps. \frac {1}{1-{( \frac {3}{\i1}- 6})}^2{\i} tentatives en moyenne,{\i} \frac {4}{3}\N-$ ou 1.333...

Et pour passer de 4 à 6, il faut 1,125 + 1,333 (la somme des deux ci-dessus).

3 à 4 c'est \$ \frac {1}{1-( \frac {4}{6})^2}\$ = \$ \frac {9}{5}\$ ou 1.8

2 à 3 c'est \frac {1}{1-( \frac {5}{6})^2}\$ est 3.27 ou \$ \frac {36}{11}\$.

Donc de 3 à 6, ça prend \$ \frac98 + \frac43 + \frac95 = \frac {511}{120}\$ ou environ 4,26 tentatives en moyenne.

Et de 2 à 6, ça prend \$ \frac {511}{120} + \frac {36}{11} = \frac {9941}{1320} =\$ environ 7.53 essais.

5voto

Rob Rodi Points 2952

Avec 2 pièces, il y a un \$. \frac {11}{36}\$ chance qu'au moins un dé soit un 1.

Avec 3 pièces, il y a un \$. \frac {20}{36} = \frac59\ $ de chance qu'au moins un dé soit un 1 ou un 2.

Avec 4 pièces, il y a un \$. \frac {27}{36} = \frac34\ $ de chance qu'au moins un dé soit un 1-3.

Avec 5 pièces, il y a un \$. \frac {32}{36} = \frac89 \5 chances qu'au moins un dé soit un 1-4.

Le nombre attendu d'étapes est juste l'inverse de la probabilité pour chaque étape.

donc pour passer de 2 à 6 pièces, c'est \$. \frac {36}{11} + \frac95 + \frac43 + \frac98 = \frac {9941}{1320} \soit environ 7,531%.

2 votes

C'est la réponse la plus intuitive à mes yeux. D'un autre côté, elle présuppose une connaissance préalable des chances d'obtenir au moins un X (c'est-à-dire l'origine de toutes les fractions), et ne tient pas compte de la question de savoir s'il est possible d'obtenir au moins un X à l'aide d'un jeu de hasard. pourquoi vous inverseriez la probabilité.

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X