Sujet : Re: Biaiser les probabilités
De : om+news (at) *nospam* miakinen.net (Olivier Miakinen)
Groupes : fr.sci.mathsDate : 30. Jan 2024, 12:05:38
Autres entêtes
Organisation : There's no cabale
Message-ID : <upal63$fdm$1@cabale.usenet-fr.net>
References : 1 2 3 4 5 6 7 8 9 10 11 12
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.4
Le 30/01/2024 11:01, Olivier Miakinen a écrit :
Tu as raison. Mon erreur était de considérer qu'à chaque tirage on avait une
chance sur deux de tirer 1 ou 0, alors qu'avec des grilles équilibrées ce
n'est plus le cas. C'est mon 1/(2^(2k+1)) qui est faux. Je vais y réfléchir
de nouveau pour trouver la formule correcte.
J'ai corrigé mon erreur, et j'ai même programmé moi-même l'algorithme en
python, mais j'ai eu une énorme surprise !
La probabilité de gain avec ton algo, en supposant des grilles équilibrées,
est en fait une formule compliquée :
proba = (n!)²/(2n)! × somme pour k = 0..n-1 de la chose suivante :
{ (2k)!(2n-2-2k)! / ( k!(k+1)!((n-1-k)!)² }
Je peux simplifier un peu en remarquant que je peux y trouver trois fois
l'expression (2m)!/(m!)² qui est égale à C(2m,m) c'est-à-dire le nombre de
combinaisons de m objets pris parmi 2m. Soit dit en passant, le k-ième
nombre de Catalan est C(2m,m)/(m+1)
En posant c2(m) = C(2m,m) l'expression devient alors :
proba = { somme pour k = 0..n-1 de ( c2(k) × c2(n-1-k) / (k+1) ) } / c2(n)
Voici mon programme :
===============================================
#!/usr/bin/env python3
import math
def c2(n) :
return math.comb(2*n, n)
def sum_item(n, k) :
return c2(k) * c2(n-1-k) / (k+1)
def proba(n) :
sum = 0
for k in range(n) :
sum += sum_item(n, k)
print ("proba pour", n, "=", sum/c2(n))
for n in range(1, 20):
proba(n)
===============================================
Et voici la colossale surprise, quand je l'exécute :
===============================================
proba pour 1 = 0.5
proba pour 2 = 0.5
proba pour 3 = 0.5
proba pour 4 = 0.5
proba pour 5 = 0.5
proba pour 6 = 0.5
proba pour 7 = 0.5
proba pour 8 = 0.5
proba pour 9 = 0.5
proba pour 10 = 0.5
proba pour 11 = 0.5
proba pour 12 = 0.5
proba pour 13 = 0.5
proba pour 14 = 0.5
proba pour 15 = 0.5
proba pour 16 = 0.5
proba pour 17 = 0.5
proba pour 18 = 0.5
proba pour 19 = 0.5
===============================================
:-D
-- Olivier Miakinen