Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#126 04-08-2016 08:33:38

freddy
Membre chevronné
Lieu : Paris
Inscription : 27-03-2009
Messages : 7 457

Re : Peut - on battre le hasard ?

@yoshi,

c'est dommage, car tout y était pourtant, la messe était définitivement dite. J'étais assez content de ma trouvaille (ou plutôt de ce souvenir lointain), et je pensais qu'il connaissait la méthode à fond car il l'appliquait exactement comme préconisée.
Bon, pas de souci, je te laisse juge et te fais confiance.


De la considération des obstacles vient l’échec, des moyens, la réussite.

Hors ligne

#127 04-08-2016 09:22:50

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 989

Re : Peut - on battre le hasard ?

Re,

Dommage (j'avais cru être original) et tant mieux !
Ma vérif s'étant avérée négative, c'était bien la conception du tirage qui était en cause...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#128 04-08-2016 09:26:01

Yassine
Membre
Inscription : 09-04-2013
Messages : 1 090

Re : Peut - on battre le hasard ?

Bonjour yoshi,
léon a déjà pointé en effet que cette méthode ne respectait pas l'énoncé.
L'énoncé dit que le triplet est choisi au hasard (comprendre donc de façon équiprobable) parmi les triplets ordonnés, strictement positifs dont la somme est 2016. C'est donc la loi $\mathbb{P}(X,Y,Z)$ pour $(X,Y,Z)$ dans l'ensemble décrit, qui est uniforme. On ne sait à priori pas quelle est la loi $\mathbb{P}(X)$ et $\mathbb{P}(Y | X=x)$ (du fait de la somme fixe, la loi $\mathbb{P}(Z | X=x,Y=y)$ est concentrée sur le point $2016-x-y$).
Ici, ton code suppose que $\mathbb{P}(X)$ est uniforme sur $\{1,\cdots, 672\}$ et que $\mathbb{P}(Y | X=x)$ est uniforme sur $\{x,\cdots, \lfloor \frac{2016-x}{2}\rfloor\}$.

Il est possible que la première supposition soit vraie mais pas la seconde (cf arguments de léon).

sans connaissance sur ces lois, les deux options que je vois sont :

  1. construire la liste de tous les triplets et en tirer un au hasard (approche retenue par ton code et le mien)

  2. tirer un nombre au hasard entre $1$ et  $338688$ et fabriquer de manière bijective un triplet. Cette approche à l'avantage de ne pas nécessiter le stockage intermédiaire de la liste des triplets. Ce qui peut être déterminant si cette liste était de taille trop grande pour les capacités de l'ordinateur (ce qui n'est bien sûr pas le cas ici). J'ai donné la bijection qui est en fait l'inverse de mon alogorithme de génération des triplets


L'ennui dans ce monde c'est que les idiots sont sûrs d'eux et les gens sensés pleins de doutes. B. Russel

Hors ligne

#129 04-08-2016 10:02:52

leon1789
Membre
Inscription : 27-08-2015
Messages : 1 203

Re : Peut - on battre le hasard ?

Je suis d'accord avec Yassine, avec une troisième proposition pour un tirage uniforme.

En fait, l'idée est bête et bourrine : on tire un triplet de somme 2016 (ils ont tous une proba de 1/(672 x 1007)) et on recommence s'il n'est pas croissant !


boucle
  x1 := rand(1..672)
  x2 := rand(1..1007)
  x3 := 2016-x1-x2
  if x1 <= x2 and x2 <= x3 then return [x1,x2,x3]
fin de boucle
 

C'est bien uniforme, pas de souci !
Il faut faire 2 tours (en moyenne) de boucle pour en sortir, c'est "honnête" :)

Hors ligne

#130 04-08-2016 10:17:23

Yassine
Membre
Inscription : 09-04-2013
Messages : 1 090

Re : Peut - on battre le hasard ?

leon1789 a écrit :

Il faut faire 2 tours (en moyenne) de boucle pour en sortir, c'est "honnête" :)

Certes, mais pour tout $N$, la probabilité que la boucle soit faite $N$ fois n'est pas nulle ;-)


L'ennui dans ce monde c'est que les idiots sont sûrs d'eux et les gens sensés pleins de doutes. B. Russel

Hors ligne

#131 04-08-2016 10:37:18

leon1789
Membre
Inscription : 27-08-2015
Messages : 1 203

Re : Peut - on battre le hasard ?

Yassine a écrit :
leon1789 a écrit :

Il faut faire 2 tours (en moyenne) de boucle pour en sortir, c'est "honnête" :)

Certes, mais pour tout $N$, la probabilité que la boucle soit faite $N$ fois n'est pas nulle ;-)

certes certes :)


Yassine a écrit :

En gros, il s'agit de trouver la bijection inverse de la bijection "naturelle" associée à mon algorithme de génération des triplets.
Si je note $N$ le nombre total de triplets, on veut trouver $\sigma: \{1 \cdots N\} \to \{ (x_1, x_2, x_3) \ | \ 0 < x_1 \le x_2 \le x_3 \wedge x_1+x_2+x_3=2016\}$. Ensuite, il suffit de tirer au hasard un entier entre $1$ et $N$ et d'utiliser cette bijection.

Je pense avoir une idée pour la fonction :

soit $n \le N$, il faut chercher $\displaystyle \max_x \sum_{i=1}^{x} \big(\left\lfloor \frac{2016-i}{2} \right\rfloor - i + 1\big) < n $ ($x$ valant zéro lorsqu'aucune valeur ne convient). Intutivement, $x$ représente le nombre de changement de $x_1$ dans mon algorithme de génération.
Une fois $x$ calculé, on posera $\sigma(n)=(x+1, n - \sum_{i=1}^{x} \big(\left\lfloor \frac{2016-i}{2} \right\rfloor - i + 1\big))$ (je n'ai pas indiqué $x_3$, mais il est calculé pour arriver à la somme requise).

Cela dit, en supposant que c'est correct, je ne sais pas si ça répond au critière d'élégance (le calcul de $\sigma$ n'est pas naturel)

Personnellement, j'interprète cette explication comme ceci :

Première étape (*) : on tire un entier x1 entre 1 et 672 suivant la loi de probabilité $P(x1 = i) = \frac{\left\lfloor \frac{2016-i}{2} \right\rfloor - i + 1}{338668}$
Seconde étape : on tire un entier x2 entre x1 et $\lfloor \frac{2016-x1}{2}\rfloor$ de manière uniforme.
Conclusion : le triplet croissant [x1, x2, 2016-x1-x2] apparaît avec une proba de 1/338668 exactement, donc loi uniforme, parfait.


(*)
Le problème est de réaliser l'étape 1, car il ne s'agit pas d'un tirage uniforme. Comment procéder ? Exactement comme Yassine le suggère : on tire un entier $n$ uniformément entre 1 et 338688, puis on calcule le plus petit entier x1 tel que $\sum_{i=1}^{x1} \big(\left\lfloor \frac{2016-i}{2} \right\rfloor - i + 1\big) \geq n$. Cela produit un entier x1 suivant la bonne loi et le tour est joué.


# recherche de x1
n := rand(1 ... 338688)
s := 0
for i=1 to 672 do
{  
    s := s + iquo(2016-i,2)-i+1
    if s >= n then x1 := i ; exit for
}

x2 := rand(x1 ... (2016-x1)/2)
x3 := 2016-x1-x2
# ici  (x1, x2, x3)  est produit suivant la loi uniforme sur les triplets strict. positifs de somme 2016
 

Il faudra 224.5 tours (en moyenne) de boucle pour trouver x1 ! C'est bien coûteux, Yassine ;) Il faut trouver le moyen de calculer formellement la somme $\sum_{i=1}^{x1} \big(\left\lfloor \frac{2016-i}{2} \right\rfloor - i + 1\big)$ pour obtenir x1 d'un coup, d'un seul. Cela doit bien pouvoir se faire car $\lfloor \frac{2016-i}{2} \rfloor$ vaut $\frac{2016-i}{2}$ ou $\frac{2015-i}{2}$ suivant la parité de $i$.

Dernière modification par leon1789 (04-08-2016 11:11:39)

Hors ligne

#132 04-08-2016 10:37:27

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 989

Re : Peut - on battre le hasard ?

Ave,

Comme ça donc :

from numpy import random

def cmp(x,y):
    return sum([1*(y>x) for x,y in zip(x,y)])

Sol=[
  (466, 775, 775), (464, 776, 776), (468, 774, 774), (462, 777, 777), (470, 773, 773), (460, 778, 778), (472, 772, 772), (458, 779, 779), (474, 771, 771), (456, 780, 780),
  (476, 770, 770), (454, 781, 781), (478, 769, 769), (452, 782, 782), (465, 775, 776), (467, 774, 775), (463, 776, 777), (480, 768, 768), (469, 773, 774), (461, 777, 778),
  (471, 772, 773), (459, 778, 779), (450, 783, 783), (473, 771, 772), (457, 779, 780), (482, 767, 767), (475, 770, 771), (455, 780, 781), (448, 784, 784), (477, 769, 770),
  (484, 766, 766), (453, 781, 782), (479, 768, 769), (464, 775, 777), (466, 774, 776), (462, 776, 778), (446, 785, 785), (468, 773, 775), (451, 782, 783), (460, 777, 779),
  (486, 765, 765), (470, 772, 774), (458, 778, 780), (472, 771, 773), (481, 767, 768), (449, 783, 784), (456, 779, 781), (474, 770, 772), (444, 786, 786), (488, 764, 764),
  (454, 780, 782), (483, 766, 767), (476, 769, 771), (447, 784, 785), (452, 781, 783), (478, 768, 770), (442, 787, 787), (465, 774, 777), (463, 775, 778), (485, 765, 766),
  (467, 773, 776), (490, 763, 763), (461, 776, 779), (469, 772, 775), (450, 782, 784), (459, 777, 780), (445, 785, 786), (480, 767, 769), (471, 771, 774), (457, 778, 781),
  (473, 770, 773), (455, 779, 782), (487, 764, 765), (448, 783, 785), (440, 788, 788), (482, 766, 768), (492, 762, 762), (443, 786, 787), (475, 769, 772), (453, 780, 783),
  (446, 784, 786), (477, 768, 771), (451, 781, 784), (484, 765, 767), (489, 763, 764), (464, 774, 778), (462, 775, 779), (466, 773, 777), (438, 789, 789), (460, 776, 780),
  (441, 787, 788), (468, 772, 776), (479, 767, 770), (494, 761, 761), (458, 777, 781), (470, 771, 775), (449, 782, 785), (444, 785, 787), (456, 778, 782), (472, 770, 774)
]
S,n=0,21
for r in range(1,n):
    succes=0
    for s in range(100):
        i,j,k=2500,0,0 # Pour forcer l'entrée dans la boucle
        while not (i<=j and j<=k):
            i=random.random_integers(1,672)
            j=random.random_integers(1,1007)
            k=2016-i-j
        succes+=(cmp((i,j,k),Sol[s])>1)
    print("Essai n° %3i" % r," de 100 tirages : %2d" % succes," succès")
    S+=succes

Moyenne=S/(n-1)
print("\n--->  Moyenne :",Moyenne)

Résultat :

Essai n°   1  de 100 tirages : 84  succès
Essai n°   2  de 100 tirages : 78  succès
Essai n°   3  de 100 tirages : 85  succès
Essai n°   4  de 100 tirages : 78  succès
Essai n°   5  de 100 tirages : 70  succès
Essai n°   6  de 100 tirages : 78  succès
Essai n°   7  de 100 tirages : 72  succès
Essai n°   8  de 100 tirages : 81  succès
Essai n°   9  de 100 tirages : 83  succès
Essai n°  10  de 100 tirages : 71  succès
Essai n°  11  de 100 tirages : 76  succès
Essai n°  12  de 100 tirages : 87  succès
Essai n°  13  de 100 tirages : 64  succès
Essai n°  14  de 100 tirages : 74  succès
Essai n°  15  de 100 tirages : 85  succès
Essai n°  16  de 100 tirages : 79  succès
Essai n°  17  de 100 tirages : 77  succès
Essai n°  18  de 100 tirages : 83  succès
Essai n°  19  de 100 tirages : 82  succès
Essai n°  20  de 100 tirages : 68  succès

--->  Moyenne : 77.75

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#133 04-08-2016 12:09:30

leon1789
Membre
Inscription : 27-08-2015
Messages : 1 203

Re : Peut - on battre le hasard ?

ok Yoshi !

Je reprends mon laïus.

leon1789 a écrit :

Il faut trouver le moyen de calculer formellement la somme $\sum_{i=1}^{x1} \big(\left\lfloor \frac{2016-i}{2} \right\rfloor - i + 1\big)$ pour obtenir x1 d'un coup, d'un seul. Cela doit bien pouvoir se faire car $\lfloor \frac{2016-i}{2} \rfloor$ vaut $\frac{2016-i}{2}$ ou $\frac{2015-i}{2}$ suivant la parité de $i$.

En fait, c'est facile  $\sum_{i=1}^{x1} \big(\left\lfloor \frac{2016-i}{2} \right\rfloor - i + 1\big) = \left\lfloor \frac34 \ x1\  (1344-x1) \right\rfloor$

Il n'y a plus qu'à déterminer le plus petit entier x1 tel que $\left\lfloor \frac34 \ x1 \ (1344-x1) \right\rfloor \geq n$.
Ce qui revient à résoudre simplement $\frac34 \ x1 \ (1344-x1) \geq n$... On trouve $x1 = 672 - \left\lfloor  \frac23 \sqrt{3 (338688-n)}\right\rfloor$ !


x1 := 672 - floor( sqrt(3*rand(0 ... 338687)) *2/3 )
x2 := rand(x1 ... (2016-x1)/2)
x3 := 2016-x1-x2

# ici  (x1, x2, x3)  est produit suivant la loi uniforme sur les triplets strict. positifs de somme 2016
 

Là, c'est au plus économe en temps (pas de boucle) et en espace (pas de stockage) !

Hors ligne

#134 04-08-2016 12:21:16

Yassine
Membre
Inscription : 09-04-2013
Messages : 1 090

Re : Peut - on battre le hasard ?

leon1789 a écrit :

Il faut trouver le moyen de calculer formellement la somme $\sum_{i=1}^{x1} \big(\left\lfloor \frac{2016-i}{2} \right\rfloor - i + 1\big)$ pour obtenir x1 d'un coup, d'un seul. Cela doit bien pouvoir se faire car $\lfloor \frac{2016-i}{2} \rfloor$ vaut $\frac{2016-i}{2}$ ou $\frac{2015-i}{2}$ suivant la parité de $i$.

J'avais en effet utilisé cette technique de découpage de la somme pour déterminer le nombre total de triplets (voir ici le post au début de ce fil).

Par contre, je ne comprends pas le tirage de $x_2$.
Pour moi, l'idée à la base est la suivante, (je note $E$ l'ensemble des triplets et $N$ son cardinal)
On trouve une bijection $\sigma: \{1, \cdots, N\} \to E$, on tire un nombre $n$ aléatoire entre $1$ et $N$, on utilise la bijection et on a directement le triplet $\sigma(n)$ (il n'y a pas d'autre tirage).
Du fait que $\sigma$ est une bijection, l'uniformité du tirage de $n$ est transférée vers les triplets.

Donc, on calcule $x_1=\left \lceil 672- \frac23 \sqrt{1016064-3n} \right\rceil$ comme tu l'indiques, et on pose $x_2 = n - x_1$ et $x_3 = 2016-x_1-x_2$.


L'ennui dans ce monde c'est que les idiots sont sûrs d'eux et les gens sensés pleins de doutes. B. Russel

Hors ligne

#135 04-08-2016 12:33:03

leon1789
Membre
Inscription : 27-08-2015
Messages : 1 203

Re : Peut - on battre le hasard ?

En fait, je pense avoir un peu divergé de ton idée sur ta fonction $\sigma$, mais ton explication m'a inspiré cette histoire de tirage de x1 qui ne soit pas uniforme pour que le résultat sur le triplet soit, lui, uniforme (après le tirage uniforme de x2 entre x1 et (2016-x1)/2). Je me suis retrouvé à calculer la même somme que toi, mais peut-être pas pour les mêmes fins.

Hors ligne

#136 04-08-2016 12:50:56

leon1789
Membre
Inscription : 27-08-2015
Messages : 1 203

Re : Peut - on battre le hasard ?

Yassine a écrit :

on calcule $x_1=\left \lceil 672- \frac23 \sqrt{1016064-3n} \right\rceil$ comme tu l'indiques, et on pose $x_2 = n - x_1$ et $x_3 = 2016-x_1-x_2$.

oui pour x1, et alors $P(x1=i) = \frac{ \lfloor (2016−i)/2 \rfloor−i+1 }{338668}$
et pour x2, on tire uniformément entre $x1$ et $\lfloor (2016-x1)/2 \rfloor$,  et alors $P(x2=j)= \frac{1}{ \lfloor (2016−x1)/2\rfloor - x1 +1 }$

D'où P( (x1,x2) = (i,j) ) = 1/338688

Mais, en repensant à ton explication, je pense que l'on pourrait ne faire un seul rand() pour affecter à la fois x1 et x2... A suivre.

Dernière modification par leon1789 (04-08-2016 13:08:27)

Hors ligne

#137 04-08-2016 16:05:51

leon1789
Membre
Inscription : 27-08-2015
Messages : 1 203

Re : Peut - on battre le hasard ?

Bon... sans stockage des 338688 triplets, sans boucle dont on a peur de ne pas sortir, et avec un seul rand(1 ... 338668) :


n := rand(1 ... 338688)
x1 := 672 - floor( sqrt( 451584 - n*4/3 ))
x2 := n - (x1-1)*(4031-3*x1)//4
x3 := 2016 - x1 - x2

# ici  (x1, x2, x3)  est produit suivant la loi uniforme sur les triplets strict. positifs de somme 2016
 

Quoi d'autre ? Un p'tit café avec ceci ? :)

C'est facile de voir que le tirage suit la loi uniforme puisque, d'une part il n'y a qu'un seul tirage uniforme (n), et d'autre part quand n va de 1 à 338688, les triplets valides sont tous parcourus.  Ouf !

EDIT : j'ai factorisé les formules pour x1 et x2 afin de les simplifier sensiblement.

Dernière modification par leon1789 (05-08-2016 06:07:35)

Hors ligne

#138 04-08-2016 16:35:30

Yassine
Membre
Inscription : 09-04-2013
Messages : 1 090

Re : Peut - on battre le hasard ?

Ok sur le principe du pseudo code.
J'ai néanmoins un doute sur la formule calculée. J'ai rapidement écrit sur un bout de papier, ça ne semble pas coller avec ton résultat (j'ai un facteur $\lfloor \frac{x+1}{2}\rfloor \big(\lfloor \frac{x+1}{2}\rfloor + 1\big)$, je ne vois comment il a disparu dans ta formule)
Je regarderai ça ce soir à la maison.


L'ennui dans ce monde c'est que les idiots sont sûrs d'eux et les gens sensés pleins de doutes. B. Russel

Hors ligne

#139 04-08-2016 23:03:45

Yassine
Membre
Inscription : 09-04-2013
Messages : 1 090

Re : Peut - on battre le hasard ?

Yassine a écrit :

Ok sur le principe du pseudo code.
J'ai néanmoins un doute sur la formule calculée. J'ai rapidement écrit sur un bout de papier, ça ne semble pas coller avec ton résultat (j'ai un facteur $\lfloor \frac{x+1}{2}\rfloor \big(\lfloor \frac{x+1}{2}\rfloor + 1\big)$, je ne vois comment il a disparu dans ta formule)
Je regarderai ça ce soir à la maison.

Non, c'st bon, je me suis planté dans mon calcul.


L'ennui dans ce monde c'est que les idiots sont sûrs d'eux et les gens sensés pleins de doutes. B. Russel

Hors ligne

#140 05-08-2016 09:16:02

Yassine
Membre
Inscription : 09-04-2013
Messages : 1 090

Re : Peut - on battre le hasard ?

@leon : C'est pas mal du tout. Et sans sucre la café stp ;-)


L'ennui dans ce monde c'est que les idiots sont sûrs d'eux et les gens sensés pleins de doutes. B. Russel

Hors ligne

#141 05-08-2016 10:27:29

leon1789
Membre
Inscription : 27-08-2015
Messages : 1 203

Re : Peut - on battre le hasard ?

Merci.
Finalement, ce que je trouve intéressant dans cet exercice simulant un tirage uniforme sur les 338688 triplets (qui n'était pas l'exercice proposé par Freddy au tout début et que tu as résolu depuis longtemps), ce sont les deux approches (bijection pour toi, proba pour moi) qui amène à faire un même calcul (à la savoir le calcul explicite de la somme $\sum_{i=1}^{x}...$), et aboutissant à deux codes qui porte en eux la marque du raisonnement qui les a construit :

- une fonction (bijective) qui envoie chaque entier $n \in \{1,...,338688\}$ dans l'ensemble des triplets


x1 := 672 - floor( sqrt( 451584 - n*4/3 ))
x2 := n - (x1-1)*(4031-3*x1)//4
x3 := 2016 - x1 - x2
 

- une approche probabiliste utilisant autant de fois que possible (deux fois) la fonction rand


x1 := 672 - floor( sqrt( rand(0 ... 338687)*4/3 ))
x2 := rand(x1 ... (2016-x1)/2)
x3 := 2016 - x1 - x2
 

On pourrait dire que cela fait deux regards orthogonaux sur le même objet (l'exercice), dans lequel une chose intrinsèque était à calculer (la somme), non ? ...

Hors ligne

#142 05-08-2016 10:57:12

Yassine
Membre
Inscription : 09-04-2013
Messages : 1 090

Re : Peut - on battre le hasard ?

Ce sont en effet deux approches complémentaires.
L'image que j'en donnerais est la suivante : $N$ boules sont rangées dans des sacs de tailles différentes et on demande une technique pour tirer au hasard (donc de manière équiprobable) une boule.

Mon approche consiste a numéroter chacune des boule, à tirer un nombre au hasard entre $1$ et $N$ et à choisir la boule qui porte ce numéro.
Ton approche consiste à choisir d'abord un sac, cette fois-ci non pas de manière équiprobable mais avec une probabilité dépendant du poids relatif du sac, puis de choisir une boule au hasard dans le sac.

Dans les deux cas, on a besoin de connaitre le nombre de boules dans chaque sac, soit pour réaliser la numérotation, soit pour calibrer la probabilité de choix d'un sac.


L'ennui dans ce monde c'est que les idiots sont sûrs d'eux et les gens sensés pleins de doutes. B. Russel

Hors ligne

#143 05-08-2016 10:57:51

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 989

Re : Peut - on battre le hasard ?

Bonjour,

Vala :

from numpy import random
from math import sqrt

def cmp(x,y):
    return sum([(y>x) for x,y in zip(x,y)])

def cree_triplet(n):
    x1= 672 - int(sqrt(451584 - n*4/3))
    x2= n - (x1-1)*(4031-3*x1)//4
    x3= 2016 - x1 - x2
    return (x1,x2,x3)


S,n,=0,21
Sol=[
  (466, 775, 775), (464, 776, 776), (468, 774, 774), (462, 777, 777), (470, 773, 773), (460, 778, 778), (472, 772, 772), (458, 779, 779), (474, 771, 771), (456, 780, 780),
  (476, 770, 770), (454, 781, 781), (478, 769, 769), (452, 782, 782), (465, 775, 776), (467, 774, 775), (463, 776, 777), (480, 768, 768), (469, 773, 774), (461, 777, 778),
  (471, 772, 773), (459, 778, 779), (450, 783, 783), (473, 771, 772), (457, 779, 780), (482, 767, 767), (475, 770, 771), (455, 780, 781), (448, 784, 784), (477, 769, 770),
  (484, 766, 766), (453, 781, 782), (479, 768, 769), (464, 775, 777), (466, 774, 776), (462, 776, 778), (446, 785, 785), (468, 773, 775), (451, 782, 783), (460, 777, 779),
  (486, 765, 765), (470, 772, 774), (458, 778, 780), (472, 771, 773), (481, 767, 768), (449, 783, 784), (456, 779, 781), (474, 770, 772), (444, 786, 786), (488, 764, 764),
  (454, 780, 782), (483, 766, 767), (476, 769, 771), (447, 784, 785), (452, 781, 783), (478, 768, 770), (442, 787, 787), (465, 774, 777), (463, 775, 778), (485, 765, 766),
  (467, 773, 776), (490, 763, 763), (461, 776, 779), (469, 772, 775), (450, 782, 784), (459, 777, 780), (445, 785, 786), (480, 767, 769), (471, 771, 774), (457, 778, 781),
  (473, 770, 773), (455, 779, 782), (487, 764, 765), (448, 783, 785), (440, 788, 788), (482, 766, 768), (492, 762, 762), (443, 786, 787), (475, 769, 772), (453, 780, 783),
  (446, 784, 786), (477, 768, 771), (451, 781, 784), (484, 765, 767), (489, 763, 764), (464, 774, 778), (462, 775, 779), (466, 773, 777), (438, 789, 789), (460, 776, 780),
  (441, 787, 788), (468, 772, 776), (479, 767, 770), (494, 761, 761), (458, 777, 781), (470, 771, 775), (449, 782, 785), (444, 785, 787), (456, 778, 782), (472, 770, 774)
]
for k in range(1,n):
    succes=0
    for r in range(100):
        a=cree_triplet(random.random_integers(1,338688)) # Tirage machine
        b =Sol[r]                                        # Tirage homme  
        succes+=(cmp(a,b)>1)
    print("Essai n° %3i" % k," de 100 tirages : %2d" % succes," succès")
    S+=succes

Moyenne=S/(n-1)
print("\n--->  Moyenne :",Moyenne)

Sortie conforme (Normal !). C'est Dlz va être content...

Essai n°   1  de 100 tirages : 80  succès
Essai n°   2  de 100 tirages : 75  succès
Essai n°   3  de 100 tirages : 77  succès
Essai n°   4  de 100 tirages : 75  succès
Essai n°   5  de 100 tirages : 78  succès
Essai n°   6  de 100 tirages : 76  succès
Essai n°   7  de 100 tirages : 77  succès
Essai n°   8  de 100 tirages : 78  succès
Essai n°   9  de 100 tirages : 83  succès
Essai n°  10  de 100 tirages : 73  succès
Essai n°  11  de 100 tirages : 74  succès
Essai n°  12  de 100 tirages : 79  succès
Essai n°  13  de 100 tirages : 82  succès
Essai n°  14  de 100 tirages : 81  succès
Essai n°  15  de 100 tirages : 87  succès
Essai n°  16  de 100 tirages : 72  succès
Essai n°  17  de 100 tirages : 72  succès
Essai n°  18  de 100 tirages : 77  succès
Essai n°  19  de 100 tirages : 78  succès
Essai n°  20  de 100 tirages : 78  succès

--->  Moyenne : 77.6

Bravo à tous les deux...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#144 05-08-2016 11:55:58

Camille23
Invité

Re : Peut - on battre le hasard ?

Bonjour,

J'obtiens en moins de 5 secondes sur mon PC la liste des 100 triplets de Yassine (post #51) avec un programme écrit en VB2010.
Donc vraiment bravo à Yassine.
Ma programmation est plus directe que celle de Yassine difficile à comprendre par quelque éminent logicien de ce forum,
Elle suit cependant les 3 cas bien dégagés par Yassine après avoir créé un tableau des triplets.
Je posterai mon programme en deuxième quinzaine d'août car mon accès à internet est ici assez limite.

#145 05-08-2016 12:56:21

Dlzlogic
Banni(e)
Inscription : 25-04-2016
Messages : 461

Re : Peut - on battre le hasard ?

Bonjour Yoshi,
Oh, je n'ai ni a être content, ni mécontent. Mais comme tu fais référence à mes appréciations, j'ai calculé la répartition de tes deux simulations.

Celle du message #132
Nombre de valeurs = 20  valeur minimale =64.00 valeur maximale=87.00
Rapport Emq/Ema = 1.23 Théorique = 1.25
Nombre = 20  Moyenne = 77.75  emq=6.31  ep=4.20

Celle du message #143
Nombre de valeurs = 20  valeur minimale =72.00 valeur maximale=87.00
Rapport Emq/Ema = 1.31 Théorique = 1.25
Nombre = 20  Moyenne = 77.60  emq=3.78  ep=2.52

On peut estimer que dans le premier cas 95% des résultats seront supérieur à 77.75 - 2*6.31 = 65.13 .
Dans le second cas 95% des résultats seront supérieurs à 77.60 - 2*3.78 = 70.04 .

Bonne journée.

Hors ligne

#146 05-08-2016 13:41:06

leon1789
Membre
Inscription : 27-08-2015
Messages : 1 203

Re : Peut - on battre le hasard ?

Dlzlogic, quelle est ta conclusion de tes calculs de moyennes, écart-types, pourcentages ???


Dlzlogic a écrit :

On peut estimer que dans le premier cas 95% des résultats seront supérieurs à 77.75 - 2*6.31 = 65.13 .
Dans le second cas 95% des résultats seront supérieurs à 77.60 - 2*3.78 = 70.04 .

Attention, mélange entre
"être dans l'intervalle [m-2.s, m+2.s] avec une proba d'environ 95 %"
et
"être supérieur à m-2.s avec une proba d'environ 98 %"
pour la loi normale N(m,s²)

Pour ce qui est du jeu, on va dire que la proba de gain à chaque tour est d'environ 0.7665 (liste de Yassine face à un tirage uniforme)
Comme il y a 100 tours (que l'on va considérer indépendants), et que l'on somme les résultats de chaque tour (1 si gain et 0 sinon),
la loi du jeu est proche de la loi normale de moyenne m=76.65 et d'écart-type $s=\sqrt{100*0.7665*(1-0.7665)} \simeq 4.23$

Donc environ 98% des parties auront un score supérieure à $m-2s \simeq 68$,
et environ 95% des parties auront un score entre $m-2s \simeq 68$ et $m+2s \simeq 85$.

Hors ligne

#147 12-08-2016 10:36:50

freddy
Membre chevronné
Lieu : Paris
Inscription : 27-03-2009
Messages : 7 457

Re : Peut - on battre le hasard ?

Hi,

sauf erreur de ma part, je trouve 15.006 triplets possibles de la forme [tex]1 \le x_1 \le x_2 \le x_3 [/tex], chacun dominant au moins 75 % des triplets construits par la machine. Donc pas compliqué d'en exhiber une centaine, tous différents.

Ce résultat donne en même temps le mode de construction des triplets par l'homme.
L'idée de base est de trouver le premier terme tq au moins 75 % des autres premiers termes soient battus. A l'aide d'un automate, ce premier terme = 337 ; ce premier terme fixé, trouver le second terme qui satisfait la même contrainte. Il est égal à 718. Bien entendu, le troisième terme est supérieur ou égal au second.

Le premier terme est compris entre 337 et 580 ; le second terme est compris entre 718 et 839. Bien entendu, il s'agit d'intervalles maximaux, le second se réduit en fonction des valeurs prises par le premier terme. Le troisième terme est compris entre 718 et 961.

Avec [tex]x_1=337[/tex], j'ai 122 triplets, avec [tex]x_1=400[/tex], j'ai 91 triplets gagnants, et avec [tex]x_1=476[/tex], j'ai 53 triplets gagnants.

Le dernier et unique triplet est égal à (580, 718, 718).

Qui vérifie ?

P S :  les probas de réussite sont comprises entre 75 % et 86,49 %.

Dernière modification par freddy (12-08-2016 10:38:27)


De la considération des obstacles vient l’échec, des moyens, la réussite.

Hors ligne

#148 13-08-2016 15:28:53

Anne Honyme
Invité

Re : Peut - on battre le hasard ?

Bonjour à tous,
Je sous suggère de tester le triplet (500,758,758) joué par l'homme.,de prouver que sa probabilité de gain est supérieure à 0.75 puis de tester des triplets voisins.
Nota important: bien définir au préalable le mode de génération aléatoire des trois entiers par la machine.C'est la seule partie délicate de cette énigme.
Anne

#149 13-08-2016 16:43:52

Camille23
Invité

Re : Peut - on battre le hasard ?

Bonjour,

freddy a écrit :

sauf erreur de ma part, je trouve 15.006 triplets possibles de la forme [tex]1 \le x_1 \le x_2 \le x_3 [/tex], chacun dominant au moins 75 % des triplets construits par la machine. Donc pas compliqué d'en exhiber une centaine, tous différents.

Qui vérifie ?

P S :  les probas de réussite sont comprises entre 75 % et 86,49 %.

Je n'en trouve que 2310, celui dominant le moins étant 446, 765, 805 et dominant 254017 des 338688
Le suivant 469, 755 792 n'en dominant que 254015.
Extraits de la liste triée dont les 100 premiers sont bien ceux donnés par Yassine.

#150 13-08-2016 17:17:18

freddy
Membre chevronné
Lieu : Paris
Inscription : 27-03-2009
Messages : 7 457

Re : Peut - on battre le hasard ?

Hi,

le triplet (446, 765, 805) domine 279.396 triplets sur 338.688, soit 82,49 % et le triplet (469,755,792) en domine 274.426, soit 81 %.
Les triplets les plus faibles (75 %) commencent par 337. Les seconds plus faibles (75,08 %) ont pour second terme constant 718 et on en trouve 243.


De la considération des obstacles vient l’échec, des moyens, la réussite.

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
quatre-vingt cinq plus trente sept
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums