Proba dans DiceyDungeons

Bonjour,
je vous soumets une question lue sur le compte Twitter d'un enseignant de maths : "Question #Math: dans #DiceyDungeons (un jeu vidéo récent), Cornélius doit atteindre ou dépasser le total 99 en lançant des dés. Au premier tour, il a 1 dé; au deuxième, 2 dés; au troisième, 3 dés... Combien en moyenne lui faudra-t-il de tours?"

J'arrive à obtenir approximativement 7.5 en faisant des simulations mais je voudrais avoir la démarche mathématique aussi.

J'ai quand même essayé des choses mais je n'en viens pas à bout. Je note $N$ la variable aléatoire qui compte le nombre de tours. Dans le pire des cas, on fait des 1 à chaque lancer, donc on fait un total de k lors du k-ème tour, donc on fait un total de $n(n+1)/2$ après $n$ tours. En résolvant $n(n+1)/2 \geq 99$, on trouve que dans le pire des cas, il faudra $14$ tours. En procédant de même, on trouve que dans le meilleur des cas, il faudra $6$ tours. Donc $N$ est à valeurs dans $\{6,..,14\}$. J'imagine bien que trouver la loi de N est hors de question, donc je cherche directement l'espérance.

Intuitivement, je me dis qu'au $k$-ème tour, on a $k$ dés qui affichent en moyenne $3.5$, donc qu'après $n$ tours, on a une somme totale de $n(n+1)/2*3.5$. En résolvant $n(n+1)/2*3.5 \geq 99$, on trouve approximativement $7.03$. Mais ce n'est pas cohérent avec ma simulation. Si on voulait rédiger mon intuition, on noterait $S_n$ la somme totale après $n$ tours et on découperait $S_n$ en somme de variables aléatoires dont on sait calculer l'espérance. Mais ça coince puisqu'il n'y a pas ma va $N$, que je ne sais d'ailleurs pas découper.

Une fois coincé, je me suis demandé s'il n'était pas possible de trouver la loi de N avec un ordinateur en énumérant toutes les possibilités, mais comme il faut dans le pire des cas lancer $91$ dés (les 13 tours, le 14ème tour donnant forcément la fin), ce qui fait $6^{91}$ possibilités, je me suis vite arrêté.

Réponses

  • Bonjour.

    En moyenne, un dé fait 3,5. la suite des moyenne des lancers de dés est donc la suite des 3,5 n, et tu veux savoir à partir de quel n la somme des termes de cette suite atteint ou dépasse 99.

    Cordialement.

    NB : j'utilise simplement la linéarité de la moyenne.
  • Bonjour
    C'est une jolie question ! Et c'est un [peu] plus complexe que ce que dit Gérard (d'ailleurs tu as vu que ça ne donne pas le bon résultat).

    Une possibilité pour avoir le temps moyen exact (mais qui nécessite tout de même un ordi) est de trouver des relations de récurrence linéaire pour $t_{n,k}=$ le nombre moyen de coups pour dépasser $99$ en partant de $n$ avec $k$ dés. Toi ce que tu cherches c'est $t_{0,1}$.

    Par exemple (sauf erreur) $$

    t_{20,4}=1+ t_{17,3}*(1/6)^3 + t_{16,3}*3*(1/6)^3+\cdots+ t_{2,3}*(1/6)^3.

    $$ (les coefficients des termes dans le $\cdots$ sont pénibles à trouver !) C'est un peu fastidieux mais on peut essayer d'automatiser l'écriture du système.
  • Posons $t(n)=n(n+1)/2$.
    On a
    \begin{align*}
    E(T)&=\sum_{k=0}^{+\infty} P(T>k)=\sum_{k=0}^{+\infty} P(S_{t(k)}\le 98)\\
    &= 6+\sum_{k=6}^{13} P(S_{t(k)}\le 98)\\

    \end{align*} Ça se calcule facilement avec Julia, par exemple
    using AbstractAlgebra
    
    t(k)=binomial(k+1,2)
    R, x = PolynomialRing(QQ, "x")
    P0=sum([x^i*(1//6) for i=1:6])
    T=[QQ(1)]
    S=QQ(6)
    for i=6:13
    P=P0^t(i)
    d=sum(P.coeffs[1:99])
    append!(T,d)
    global S+=d
    println("i=$i : $d ",Float64(d))
    end
    println("S= $S : ",Float64(S))
    L=-diff(T)
    println("loi de T : ",Float64.(L))
    
    i=6 : 5481197393333207//5484237660094464 0.9994456354830537
    i=7 : 14839119776525110003//28430288029929701376 0.5219475708759396
    i=8 : 2220861208169923604612471//644651549905658471635746816 0.0034450568039352974
    i=9 : 57914440000258928774048683//1082767057646342459494946524102656 5.3487441819803835e-8
    i=10 : 15121590574293938223609299//10911797245774314818682384606163239960576 1.3858020116850962e-15
    i=11 : 31057147120122560974558123//1140125159933518998710921165042613958978136312905728 2.724012083193876e-26
    i=12 : 170590268080779028583//2481804308972459090714339962353302753170635736133357543620608 6.873638967586791e-41
    i=13 : 1152867065//5402347781179935259149596851949574424362007864305449641325688979980288 2.134011196051137e-61
    S= 40651793583693895164646505156946597939575282149436662759873008599747321//5402347781179935259149596851949574424362007864305449641325688979980288 : 7.524838316650372
    loi de T : [0.0005543645169463047, 0.4774980646071141, 0.5185025140720043, 0.0034450033164934776, 5.3487440434001824e-8, 1.385802011657856e-15, 2.724012083193869e-26, 6.873638967586791e-41]
    
    À partir de i=8, la contribution est quasiment nulle, ce qui peut se voir facilement à l'aide d'une inégalité de concentration, par exemple Höffding.

    On a donc 7.524838316650372, compatible avec tes simulations.
  • En fait la loi est très concentrée, on le voit dans le tableau: à peu près 48% en 7 coups et 52% en 8 coups.
  • Merci de vos réponses. Effectivement, on n'est pas loin de se retrouver avec un presque Pile ou Face pour la loi.

    J'ai compris le principe de la méthode de Lucas, mais ça a l'air bien laborieux de trouver une récurrence linéaire, je vais déjà regarder ton exemple et essayer d'en construire un autre moi-même.

    Pour les maths proposés par aléa, ça va aussi. Par contre, je ne connais pas Julia. Le script étant assez court, je vais tâcher de voir ce que ça donne
  • Effectivement, la méthode d'aléa est beaucoup plus simple à implémenter!
Connectez-vous ou Inscrivez-vous pour répondre.