Coccinelle et chaine de Markov

Voici l’énoncé d’un problème que j’ai posté sur le groupe HP Calculator Fan Club

Des propositions de simulations pour quelques calculatrices HP :

Le calcul théorique est très simple :

La réponse à trouver était donc : 5 mouvements

Version en Python

from random import random

def simul(n:int):
    tot = 0    # Total de tous les mouvements
    for _ in range(n):    # n simulations
        r = 1       # Dernier mvt de 2 vers 1
        # Aller-retour de 2 vers 3 ou 4 avec probabilité 2/3
        while int(3 * random()) != 0: r += 2
        # On ajoute le nb de mvt au total
        tot += r
    # Moyenne
    return tot / n

>>> simul(1000)
4.752
>>> simul(10000)
5.0992
>>> simul(100000)
4.98308