Étape 1
Soit $X$ la variable aléatoire modélisant le rang du premier succès. D'après la formule rappelée dans l'énoncé, la probabilité d'obtenir le premier succès au deuxième essai est $$P(X = 2) = p(1-p)$$
Étape 2
L'énoncé indique que $P(X = 2) = \dfrac{2}{9}$. On obtient donc l'équation $$p(1-p) = \dfrac{2}{9}$$ ce qui équivaut à $$-p^2 + p - \dfrac{2}{9} = 0$$ ou encore $$9p^2 - 9p + 2 = 0$$
Étape 3
Résolvons cette équation du second degré en $p$. Le discriminant est $$\Delta = (-9)^2 - 4 \times 9 \times 2 = 81 - 72 = 9$$ Les solutions sont $$p_1 = \dfrac{9 - \sqrt{9}}{2 \times 9} = \dfrac{6}{18} = \dfrac{1}{3} \quad \text{et} \quad p_2 = \dfrac{9 + \sqrt{9}}{2 \times 9} = \dfrac{12}{18} = \dfrac{2}{3}$$
Étape 4
Analysons à présent le comportement du script Python pour sélectionner la valeur valide de $p$. Au début de la fonction, $k = 1$ et $\text{prob} = p$. Pour que le programme entre au moins une fois dans la boucle while (afin que $k$ passe à $2$), il faut que la condition prob < 0.5 soit vraie au départ, ce qui impose $p < 0{,}5$.
Étape 5
Si $p = \dfrac{2}{3}$, alors $p \ge 0{,}5$. La condition de la boucle while est fausse dès le départ : la boucle n'est pas exécutée et la fonction renvoie $k = 1$.
Étape 6
Si $p = \dfrac{1}{3}$, alors $p < 0{,}5$. La boucle s'exécute une première fois : $k$ prend la valeur $2$ et $\text{prob}$ devient $1 - \left(1 - \dfrac{1}{3}\right)^2 = 1 - \dfrac{4}{9} = \dfrac{5}{9} \approx 0{,}556$. Comme $\dfrac{5}{9} \ge 0{,}5$, la condition du while devient fausse, la boucle s'arrête et la fonction renvoie bien $2$.
Étape 7
Par conséquent, la seule valeur de $p$ compatible avec l'ensemble des données est $p = \dfrac{1}{3}$.
Méthode clé
Traduire une probabilité donnée par une équation algébrique, puis analyser le flux d'exécution de l'algorithme (conditions de boucle) pour lever l'ambiguïté sur les valeurs obtenues.
Piège à éviter
Conserver les deux solutions de l'équation du second degré sans vérifier la condition d'entrée dans la boucle Python.