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).

#51 31-07-2016 18:38:47

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

Re : Peut - on battre le hasard ?

Re,

from numpy import random

def g_triples():
    return [(i,j,2016-i-j) for i in range(1, 673) for j in range (i, (2016-i)//2+1)]
   
def cmp(x,y):
    return (y[0]>x[0] and y[1]>x[1]) or (y[0]>x[0] and y[2]>x[2]) or (y[1]>x[1] and y[2]>x[2])


Trp=g_triples()
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,51
for k in range(1,n):
    succes=0
    for j in range(100):
        a=Trp[random.random_integers(0,338687)]   # Tirage machine (distribution uniforme)
        b=Sol[random.random_integers(0,99)]       # Tirage homme   (distribution uniforme)
        succes+=cmp(a,b)

    print("Essai n° %2i" % k," de 100 tirages : ",succes," succès")
    S+=succes
Moyenne=S/(n-1)
print("\n--->  Moyenne :",Moyenne)

Ça te va ?

N-B : En Python, c'est l'indentation qui sert d'indicateur de fin de bloc.

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#52 31-07-2016 18:48:45

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

Re : Peut - on battre le hasard ?

OK merci.

Hors ligne

#53 31-07-2016 19:07:52

tibo
Membre expert
Inscription : 23-01-2008
Messages : 1 097

Re : Peut - on battre le hasard ?

Salut,

Un grand bravo à Yassine !
Je m'étais pas mal creusé les méninges sur ce problème mais sans aboutir.


A quoi sert une hyperbole?
----- A boire de l'hypersoupe pardi !

Hors ligne

#54 31-07-2016 19:09:34

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

Re : Peut - on battre le hasard ?

Bonsoir,
Yoshi, l'homme s'est engagé à ne pas produire deux fois le même triplet, donc ta ligne b=Sol[random.random_integers(0,99)]
n'est pas correcte : il faut simplement b=Sol[j]
pour passer un à un tous les triplets "humains".

Hors ligne

#55 31-07-2016 20:18:47

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

Re : Peut - on battre le hasard ?

Re,

Arf ! C'est exact ! Ça m'avait échappé.
Je corrige à ma façon...
Voilà :

from numpy import random

def g_triples():
    return [(i,j,2016-i-j) for i in range(1, 673) for j in range (i, (2016-i)//2+1)]
   
def cmp(x,y):
    return (y[0]>x[0] and y[1]>x[1]) or (y[0]>x[0] and y[2]>x[2]) or (y[1]>x[1] and y[2]>x[2])


Trp=g_triples()
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,51

for k in range(1,n):
    succes=0
    Tirages=Sol[:]
    for j in range(100):
        a=Trp[random.random_integers(0,338687)]   # Tirage machine (distribution uniforme)
        t =random.random_integers(0,99-j)         # Tirage homme   (distribution uniforme)
        b=Tirages[t]  
        succes+=cmp(a,b)
        del Tirages[t]
    print("Essai n° %2i" % k," de 100 tirages : ",succes," succès")
    S+=succes
Moyenne=S/(n-1)
print("\n--->  Moyenne :",Moyenne)

Résultat :

Essai n°  1  de 100 tirages :  80  succès
Essai n°  2  de 100 tirages :  77  succès
Essai n°  3  de 100 tirages :  78  succès
Essai n°  4  de 100 tirages :  83  succès
Essai n°  5  de 100 tirages :  77  succès
Essai n°  6  de 100 tirages :  74  succès
Essai n°  7  de 100 tirages :  76  succès
Essai n°  8  de 100 tirages :  76  succès
Essai n°  9  de 100 tirages :  83  succès
Essai n° 10  de 100 tirages :  84  succès
Essai n° 11  de 100 tirages :  76  succès
Essai n° 12  de 100 tirages :  79  succès
Essai n° 13  de 100 tirages :  78  succès
Essai n° 14  de 100 tirages :  72  succès
Essai n° 15  de 100 tirages :  75  succès
Essai n° 16  de 100 tirages :  77  succès
Essai n° 17  de 100 tirages :  75  succès
Essai n° 18  de 100 tirages :  79  succès
Essai n° 19  de 100 tirages :  75  succès
Essai n° 20  de 100 tirages :  79  succès
Essai n° 21  de 100 tirages :  84  succès
Essai n° 22  de 100 tirages :  76  succès
Essai n° 23  de 100 tirages :  76  succès
Essai n° 24  de 100 tirages :  77  succès
Essai n° 25  de 100 tirages :  74  succès
Essai n° 26  de 100 tirages :  75  succès
Essai n° 27  de 100 tirages :  75  succès
Essai n° 28  de 100 tirages :  75  succès
Essai n° 29  de 100 tirages :  77  succès
Essai n° 30  de 100 tirages :  78  succès
Essai n° 31  de 100 tirages :  71  succès
Essai n° 32  de 100 tirages :  80  succès
Essai n° 33  de 100 tirages :  69  succès
Essai n° 34  de 100 tirages :  76  succès
Essai n° 35  de 100 tirages :  72  succès
Essai n° 36  de 100 tirages :  82  succès
Essai n° 37  de 100 tirages :  80  succès
Essai n° 38  de 100 tirages :  81  succès
Essai n° 39  de 100 tirages :  76  succès
Essai n° 40  de 100 tirages :  75  succès
Essai n° 41  de 100 tirages :  83  succès
Essai n° 42  de 100 tirages :  77  succès
Essai n° 43  de 100 tirages :  73  succès
Essai n° 44  de 100 tirages :  80  succès
Essai n° 45  de 100 tirages :  72  succès
Essai n° 46  de 100 tirages :  78  succès
Essai n° 47  de 100 tirages :  69  succès
Essai n° 48  de 100 tirages :  78  succès
Essai n° 49  de 100 tirages :  73  succès
Essai n° 50  de 100 tirages :  73  succès

--->  Moyenne : 76.76

Je crée une copie de Sol.
Je persiste à tirer au hasard une solution et pour être sûr de ne pas retomber sur la même, je la supprime de ma copie...
Et je décrémente le tour suivant ma valeur max de j d'où le 99-j (au premier tour, j est à 0, donc no pb).

Ça devrait être bon.

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#56 31-07-2016 20:30:11

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

Re : Peut - on battre le hasard ?

@leon : C'est en effet plus juste, mais ça ne changera en pratique pas le résultat parce que les triplets ont quasiment tous la même proba de gagner (ça va de 76,76% à 76,25%).

J'avoue ne pas comprendre l'intérêt de ces simulations. Je m'explique : Supposons donné un ensemble fini non vide $E$ de cardinal connu, et supposons donnée une propriété $P$ que les éléments $x \in E$ peuvent ou pas vérifier. On notera $H$ le sous ensemble de $E$ des éléments vérifiant la propriété : $H = \{ x \in E \ | \ P(x) \}$. et on s'intéresse à la probabilité qu'un élément tiré au hasard dans $E$ soit dans $H$. Par définition, cette probabilité est donnée par $\mathbb{P}(H) = \frac{|H|}{|E|}$.
Si on connait $|H|$, le problème est plié, on connait la réponse exacte. Il n'y a donc besoin d'aucune simulation.
Si on ne connait pas $|H|$ mais qu'on a un moyen de vérifier la propriété $P$ (par exemple, la propriété $P(x) := x$ est premier ), alors une simulation peut être un bon moyen d'estimer $|H|$.

Ici, on est dans le premier cas de figure.
Pour un triplet $c$ donné, l'ensemble $H$ est l'ensemble des triplets qui perdent contre $c$. Et l'objet de ma démonstration a été de trouver un moyen rapide de calculer $|H|$ (on avait déjà une méthode très lente, il suffisait de scanner tous les autres triplets et les comparer à $c$). Donc, pour un triplet $c$ choisi par l'homme, on connait exactement la probabilité qu'il gagne contre un triplet pris au hasard. Pourquoi fait-on une simulation ?


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

#57 31-07-2016 20:30:11

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

Re : Peut - on battre le hasard ?

yoshi a écrit :

def cmp(x,y):
    return (y[0]>x[0] and y[1]>x[1]) or (y[0]>x[0] and y[2]>x[2]) or (y[1]>x[1] and y[2]>x[2])

tiens, histoire de faire le chieur de service : on veut qu'au moins deux y_i soient supérieurs à deux x_i, donc
return ( (y[0]>x[0]) + (y[1]>x[1]) + (y[2]>x[2]) > 1 )
doit faire le même travail, non ?


yoshi a écrit :

Je crée une copie de Sol.
Je persiste à tirer au hasard une solution et pour être sûr de ne pas retomber sur la même, je la supprime de ma copie...
Et je décrémente le tour suivant ma valeur max de j d'où le 99-j (au premier tour, j est à 0, donc no pb).

Ça devrait être bon.

oui, ça colle avec l'énoncé, mais pourquoi te compliques-tu la tâche comme ça ? cela revient au même que Sol[j] puisque la proposition de l'ordi est tirée au hasard.

Dernière modification par leon1789 (31-07-2016 20:47:11)

Hors ligne

#58 31-07-2016 20:37:58

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

Re : Peut - on battre le hasard ?

Yassine a écrit :

@leon : C'est en effet plus juste, mais ça ne changera en pratique pas le résultat parce que les triplets ont quasiment tous la même proba de gagner (ça va de 76,76% à 76,25%).

oui, mais il faut être réglo quand même :)


Yassine a écrit :

J'avoue ne pas comprendre l'intérêt de ces simulations.

les intérêts d'une simulation, je vois :
- (pour tous les programmeur) le plaisir de programmer,
- (pour les prudents) se rassurer en constatant qu'il n' y a pas de contradiction avec le raisonnement théorique,
- (pour certains) avoir l'impression de comprendre un peu quand on ne s'est pas approprié la preuve théorique.

Hors ligne

#59 31-07-2016 20:45:28

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

Re : Peut - on battre le hasard ?

Ave,

return ( (y[0]>x[0]) + (y[1]>x[1]) + (y[0]>x[0]) > 1 )
doit faire le même travail, non ?

Pas réfléchi à ça...
Yassine, lui, si !
J'ai pompé, parce que mon truc avec la fonction zip comparait 1er de l'un avec 1er de l'autre, 2e de l'un avec 2e de l'autre, 3e de l'un avec 3e de l'autre, ça collait pas avec l'énoncé...

pourquoi te compliques-tu la tâche comme ça ? cela revient au même que Sol[j] puisque la proposition de l'ordi est tirée au hasard.

Pas vraiment, puisque moi, je tire au hasard le triplet humain, ce qui est probablement plus restrictif question score...
Mais j'enlève un argument à qui contesterait le script de Yassine :
si je fais Sol[j], je passe "mes" triplets en revue du 1er au dernier dans l'ordre du plus petit au plus grand...

@+

[EDIT] Je viens de contrôler : même pas ! Les solutions ne sont pas classées...
Dans ce cas, tu as raison.
Mais j'aime bien faire "tordu"...^_^
En Term, c'était ma marque de fabrique, déjà : alors, qui voulait me pomper dessus, le faisait à ses risques et ses périls...

Dernière modification par yoshi (31-07-2016 20:48:11)


Arx Tarpeia Capitoli proxima...

Hors ligne

#60 31-07-2016 20:47:54

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

Re : Peut - on battre le hasard ?

Bonsoir,
On fait des simulations,
Voici la mienne
Méthode Yassine TgagneX = 1857  TgagneY = 8143
Méthode Yassine TgagneX = 1864  TgagneY = 8136
Méthode Yassine TgagneX = 1819  TgagneY = 8181
Méthode Yassine TgagneX = 1917  TgagneY = 8083
Méthode Yassine TgagneX = 1780  TgagneY = 8220
Méthode Yassine TgagneX = 1831  TgagneY = 8169
Méthode Yassine TgagneX = 1869  TgagneY = 8131
Méthode Yassine TgagneX = 1902  TgagneY = 8098

Très nettement on dépasse 80%. Alors, d'où viennent les les 75% environ ?
D'autre part , je n'ai pas compris comment la liste de 100 triplets a été établie.
Bon, tout ceci n'est qu'un exercice théorique, on attend avec impatience le corrigé.
Bonne soirée.

Hors ligne

#61 31-07-2016 21:00:23

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

Re : Peut - on battre le hasard ?

yoshi a écrit :

pourquoi te compliques-tu la tâche comme ça ? cela revient au même que Sol[j] puisque la proposition de l'ordi est tirée au hasard.

Pas vraiment, puisque moi, je tire au hasard le triplet humain, ce qui est probablement plus restrictif question score...
Mais j'enlève un argument à qui contesterait le script de Yassine :
si je fais Sol[j], je passe "mes" triplets en revue du 1er au dernier dans l'ordre du plus petit au plus grand...

ah... on ne va pas être d'accord sur cette affaire :)

Avec ton algorithme de suppression, tu vas parcourir tous les triplets humains dans un ordre aléatoire, disons $sol(\ f(0)\ ), ...., sol(\ f(99)\ )$ où f est une bijection de 0..99 , et tu les compares avec des tirages de l'ordi, disons $T(0), ... T(99)$ .
Alors le résultat de cette partie de 100 tirages
$sol(\ f(0)\ )...sol(\ f(99)\ )$ contre $T(0),... T(99)$
sera exactement le même que celle-ci :
$sol(0)...sol(99)$ contre $T(\ f^{-1}(0)\ ),... T(\ f^{-1}(99)\ )$
car ce sont les mêmes triplets mis en opposition, mais dans un ordre différent dans la suite des 100 tirages.

Je ne sais pas si j'arrive à me faire comprendre, si ?

yoshi a écrit :

Je viens de contrôler : même pas ! Les solutions ne sont pas classées...
Dans ce cas, tu as raison.

ok :)

yoshi a écrit :

Mais j'aime bien faire "tordu"...^_^

c'est un droit républicain, pas de problème :)

Hors ligne

#62 31-07-2016 21:02:28

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

Re : Peut - on battre le hasard ?

Re,

car ce sont les mêmes triplets mis en opposition, mais dans un ordre différent dans la suite des 100 tirages.

Si, tu es clair. C'est ce que je me disais en m'apercevant que les solutions n'étaient pas classées...
Ce serait vrai aussi d'ailleurs, j'ai l'impression (faut que j'aille me coucher, j'vais finir par raconter des c...ies), avec des solutions classées...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#63 31-07-2016 21:05:28

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

Re : Peut - on battre le hasard ?

Bon, un petit rajout de question : pourquoi générer 300000 triplets pour n'en étudier que 100 ?
A mon avis il suffit d'utiliser une simple formule de tirage aléatoire
x1=rand()%2016+1
x2=rand()%(2016-x1)
x3= 2016-x1-x2
Puis d'ordonner, conformément aux hypothèses..
Attention la formule est fausse (plantage) : (2016-x1) doit être plus grand que 1. C'est juste un détail de syntaxe.

Hors ligne

#64 31-07-2016 21:40:58

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

Re : Peut - on battre le hasard ?

Dlzlogic a écrit :

Bonsoir,
On fait des simulations,
(...)
Très nettement on dépasse 80%. Alors, d'où viennent les les 75% environ ?

Dlzlogic a écrit :

A mon avis il suffit d'utiliser une simple formule de tirage aléatoire
x1=rand()%2016+1
x2=rand()%(2016-x1)
x3= 2016-x1-x2
Puis d'ordonner, conformément aux hypothèses..
Attention la formule est fausse (plantage) : (2016-x1) doit être plus grand que 1. C'est juste un détail de syntaxe.

Et oui, on peut faire comme-ci ou comme-ça, puis on trouve des résultats tout à fait différents ... alors pourquoi ? Paf, tu tombes exactement dans le paradoxe de Bertrand ! 

Prouve !!!!!!!!! que tes tirages (x1,x2,x3) respectent la loi uniforme sur les 338688 triplets de somme 2016 , conformément aux hypothèses.....

Hors ligne

#65 31-07-2016 21:48:24

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

Re : Peut - on battre le hasard ?

Bon, encore moi.

Enonce a écrit :

Démontrer que l'espérance mathématique du nombre de parties gagnées par l'homme est au moins égale à 75.

Une petite intuition me dit que Bienaymé devrait nous aider, mais ça dépasse mes compétences.

Hors ligne

#66 31-07-2016 23:02:25

tibo
Membre expert
Inscription : 23-01-2008
Messages : 1 097

Re : Peut - on battre le hasard ?

Re,

Dlzlogic a écrit :

Méthode Yassine TgagneX = 1857  TgagneY = 8143
Méthode Yassine TgagneX = 1864  TgagneY = 8136
Méthode Yassine TgagneX = 1819  TgagneY = 8181
Méthode Yassine TgagneX = 1917  TgagneY = 8083
Méthode Yassine TgagneX = 1780  TgagneY = 8220
Méthode Yassine TgagneX = 1831  TgagneY = 8169
Méthode Yassine TgagneX = 1869  TgagneY = 8131
Méthode Yassine TgagneX = 1902  TgagneY = 8098
Très nettement on dépasse 80%. Alors, d'où viennent les les 75% environ ?

Moi je ne comprend pas d'où viennent tes 80%...

D'autre part , je n'ai pas compris comment la liste de 100 triplets a été établie.
Bon, tout ceci n'est qu'un exercice théorique, on attend avec impatience le corrigé.
Bonne soirée.

Pour le corrigé, Yassine l'a donné post #43 et #45, via ce lien.

Sa démonstration étant tout à fait clair et rigoureuse, je comprend qu'il soit agacé de toutes ces "simulations" (même si je comprend également l'intérêt de les programmer).
Si tu ne comprend pas sa démonstration, je te renvois à ma signature. Es-tu suffisamment instruit et préparé?

Dernière modification par tibo (31-07-2016 23:45:07)


A quoi sert une hyperbole?
----- A boire de l'hypersoupe pardi !

Hors ligne

#67 01-08-2016 06:43:24

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

Re : Peut - on battre le hasard ?

Salut,


J'avoue ne pas comprendre l'intérêt de ces simulations.

Le plaisir de programmer : oui, mais là, minime...
Je ne me suis lancé que parce que j'ai cru détecter (et en réponse à...) une insatisfaction dubitative chez notre ami Dlz qui avait pondu sa propre solution...
Personnellement, je n'avais aucun doute : à partir du moment où la solution était la conséquence d'une démonstration rigoureuse, moi, ça me suffisait...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#68 01-08-2016 08:07:20

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

Re : Peut - on battre le hasard ?

Bonjour yoshi,

yoshi a écrit :

Le plaisir de programmer : oui, mais là, minime...

Je respecte tout à fait ce type de distractions, j'ai les mêmes à la maison ;-)

yoshi a écrit :

Je ne me suis lancé que parce que j'ai cru détecter (et en réponse à...) une insatisfaction dubitative chez notre ami Dlz qui avait pondu sa propre solution...

Je pense que c'est peine perdue !
Je poste une démonstration, il ne semble pas intéressé
Tu postes une simulation, il en sort une autre qui, sous prétexte d'utiliser tel langage ou telle implémentation de rand(), donne de meilleurs résultats (en faisant fi de ma remarque au post #31 et celle de leon au post #64 alors que c'est déterminant pour les résultats).


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

#69 01-08-2016 08:44:05

tibo
Membre expert
Inscription : 23-01-2008
Messages : 1 097

Re : Peut - on battre le hasard ?

Re,

D'ailleurs Yoshi, ton programme étant déjà écrit, peux-tu faire quelques simulations avec la solution de Dlz?


A quoi sert une hyperbole?
----- A boire de l'hypersoupe pardi !

Hors ligne

#70 01-08-2016 09:26:30

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

Re : Peut - on battre le hasard ?

Salut tibo,

Oui, s'il avait proposé une liste de 100 triplets, puisqu'il annonce :

Personnellement, j'ai préféré un gain plus sûr, c'est à dire 85 pour 100.

Je n'aime pas le C, je n'aime pas l'écriture programmatique de notre ami.
Je serais obligé de transformer son programme C en Python et voir si je suis capable de récupérer les triplets...
Ça ne me tente pas beaucoup...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#71 01-08-2016 12:22:37

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

Re : Peut - on battre le hasard ?

Bonjour

Dlzlogic a écrit :

l'homme défini y1=1 ; y2=1007 ; y3 = 1008
puis y1=2 ; y2=1007 ; y3=1007
puis y1=3 ; y2=1006 ; y3=1007
...
enfin y1=100 ; y2 = 958 ; y3 = 958
(...)
Avec plusieurs essais, l'homme gagne avec au moins 83% et on ne devrait pas descendre en-dessous de 82.5%

Avec de tels triplets, et en respectant les règles du jeu, on obtient une espérance de gain de 35.2% !!

Le triplet (1,1007,1008) ne gagne qu'une fois sur quatre, le triplet (100,958,958) gagne moins de 45% du temps.

Comme quoi, il ne suffit pas de prendre son clavier et taper soi-même un programme pour répondre à une question.

Hors ligne

#72 01-08-2016 13:13:01

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

Re : Peut - on battre le hasard ?

Bonjour,
Je me permets de citer 2 phrases de l'énoncé :
" mais s'en remet à une stratégie construite de telle façon qu'elle optimise ses chances de gain défini comme ci-après*. "

"Démontrer que l'espérance mathématique du nombre de parties gagnées par l'homme est au moins égale à 75."

J'avoue que je n'ai pas compris la stratégie utilisée par l'homme. J'ai vu une liste de triplets, mais je n'ai pas réussi à détecter le mode de fabrication, sauf qu'il s'agit d'un traitement et qu'on ne garde que les 100 meilleurs.
D'abord, pardon Yessine de ne pas avoir réagi à ta remarque concernant le tri des valeurs. Je trie las valeurs uniquement dans mon code de simulation. La machine produit ses trois valeurs de x dans l'ordre croissant, soit elle en produit 3 les ordonne et les produit, soit elle en tire 3 s'il ne sont pas dans l'ordre, elle recommence. L'énoncé est parfaitement clair la machine produit 3 valeurs ordonnées.

Concernant l'objection de Léon sur la façon de produire les triplets avec une machine, c'est un autre sujet. S'il ouvre un autre topic sur ce sujet j'essayerai de répondre.
De toute façon et dans tous les cas, les calculs et simulations avec les machines ne servent que de vérification dans le cadre de cet exercice.

J'ai bien vu et lu les explications de Yassine. J'avoue et j'en ai honte, que je n'ai pas compris grand-chose. Il me semble bien que cette liste de triplets gagnants résulte d'un traitement informatique.

Il me semble légitime de demander le corrigé prévu par l'auteur de l'exercice.
Enfin, les calculs faits avec ma machine n'ont servi qu'à simuler et à vérifier.

Hors ligne

#73 01-08-2016 13:45:59

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

Re : Peut - on battre le hasard ?

Dlzlogic a écrit :

Je trie las valeurs uniquement dans mon code de simulation. La machine produit ses trois valeurs de x dans l'ordre croissant, soit elle en produit 3 les ordonne et les produit, soit elle en tire 3 s'il ne sont pas dans l'ordre, elle recommence. L'énoncé est parfaitement clair la machine produit 3 valeurs ordonnées.

Oui, la machine produit des triplets tels que tu lu as demandé de le faire, mais cela ne correspond à la manière dont l'énoncé le demande. En clair, tu n'as pas traduit correctement l'énoncé du jeu à la machine : l'énoncé se place dans la cadre de la loi uniforme sur les triplets de somme 2016, ta manière (qui te paraît surement naturelle) de construire les triplets suit une autre loi !

Tes calculs en machine ne simulent pas le jeu tel qu'il est exposé et tes résultats montrent simplement que, lorsqu'on change la loi de probabilité sur le choix des triplets fabriqués par l'ordinateur, alors le résultat change (c'est exactement le coeur du paradoxe de Bertrand).

Hors ligne

#74 01-08-2016 13:57:24

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

Re : Peut - on battre le hasard ?

Ben, oui, je me suis planté. J'ai oublié que le plus petit des Y, donc y1, pouvait être plus petit que le plus petit des X, donc x1, ET que x2 ou x3 pouvait être plus grand que y2 ou y3.

Hors ligne

#75 01-08-2016 14:16:31

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

Re : Peut - on battre le hasard ?

Re,

@leon
Cette fois j'ai réfléchi... Si, si, ça m'arrive.
Et j'ai aussi relu l'énoncé qui précise comment se fait la comparaison des triplets :

Un arbitre compare les trois suites de nombre comme suit : x1 à y1 , x2 à y2 et x3 à y3

Donc la fonction telle que je l'avais écrite est correcte !
Yassine tu es trop restrictif.
J'ai repris et refait une simulation sur 20, 50 et 100 : Moyennes 75,95 ---  75,84 --- 76,04... Rien de changé et c'est normal.

Tiens au passage, cher ami, count est un mot réservé de Python : t'as de la chance de ne pas avoir eu de collision !

@+


Arx Tarpeia Capitoli proxima...

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)?
dix plus soixante seize
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