@elegance
Intuitivement, si la probabilité p est supérieure à 0.5, il faut faire ’tapis’. On a une probabilité supérieure à 50% de faire le score maximum, et donc de gagner (ou match nul si l’adversaire choisit la même stratégie et gagne le maximum de jetons).
À peu près oui, mais il faut faire attention au fait que l’autre stratégie peut aussi gagner tous les points (il y a en fait trois issues possibles : gagner, perdre ou partie nulle). Il est possible de trouver une valeur de $p$ (qui est strictement supérieure à 1/2) à partir de laquelle aucune stratégie ne bat cette consistant à tout miser.
Je joue un seul jeton., uis encore un seul jeton et encore un seul jeton … A priori, mon adversaire joue come moi, parce que lui aussi à réfléchi. Si à un moment, je considère que j’ai eu très peu de chance (par exemple au bout de 20 jetons, je n’ai eu aucun coup gagnant, alors que la probabilité théorique est de 40% de gain à chaque lancer), alors je pense que j’ai un retard significatif, je n’ai plus de chance de gagner avec cette stratégie, et je dois donc faire tapis.
Déjà, quand on dit « gagner », ça dépend contre quelle autre stratégie, et en plus on veut maximiser ses chances de gagner, bref c’est un peu complexe. En faisant ce que tu dis, on va être battu par une stratégie qui continue à miser un par un jusqu’à la fin (si $p<1/2$), pour la même raison que l’on a plus intérêt à miser un par un au début.
Et même, si on a beaucoup de jetons au départ, la stratégie parfaite est probablement de jouer 1 jeton à la fois au début, puis 2 jetons à la fois si on a un retard significatif, puis 3 à la fois…
Il est possible a priori qu’il n’y ait pas de stratégie parfaite. C’est pour ça que je parlais de phénomènes non transitifs. Je ne suis pas convaincu par ce que tu dis car une stratégie battant la stratégie « tout miser » pour $p$ compris entre 0 et une valeur critique fait un peu le contraire…
Si on a 1000 jetons au départ, si p vaut 40%, et si au bout de 100 jetons joués, j’ai gagné seulement 25 points, je suis 15 points en retard par rapport à l’espérance normale. En jouant 1 pion par 1 pion, je joue la stratégie qui donne une très faible variance, je me donne peu de chances de faire plus de 40% sur les 900 pions restants. En jouant les pions 5 par 5 ou 10 par 10, l’espérance est la même, mais la variance est plus élevée, j’augmente donc mes chances de rattraper mon retard.
Mais tu augmentes aussi tes chances de creuser ton retard. Bref c’est pas clair. De toute manière il faudra bien faire des calculs quelque part si on veut dire quelque chose.
Déjà, chaque stratégie (pour un nombre de jetons $n$ fixé) peut être représentée sous forme d’arbre binaire entier étiqueté par des entiers positifs et tel que la somme sur chaque chemin menant de la racine à une feuille soit $n$.
J’ai fait un code Python pour tester les stratégies.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | from random import random class Checker: def __init__(self,n,p): self.n = n self.p = p self.nonplayed = n self.played = 0 self.score = 0 def play(self,m): if m > self.nonplayed: m = self.nonplayed self.score += int(random() < self.p) * m self.played += m self.nonplayed -= m def play_game(strat,n,p): ch = Checker(n,p) strat(ch) return ch.score def prob_win(stratA, stratB, n, p, *, nb_tries=10**5): nb_gt = 0 nb_eq = 0 nb_lt = 0 for _ in range(nb_tries): sa = play_game(stratA,n,p) sb = play_game(stratB,n,p) if sa > sb: nb_gt += 1 elif sa == sb: nb_eq += 1 elif sa < sb: nb_lt += 1 return (nb_gt/nb_tries, nb_eq/nb_tries, nb_lt/nb_tries) def stratA(checker): checker.play(checker.n) def stratB(checker): for i in range(checker.n): checker.play(1) print(prob_win(stratA, stratB, 100, 0.3)) |