Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 2019
-
26 juil. 2007 à 23:50
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
27 juil. 2007 à 15:55
Salut tout le monde,
En cette période de vacances je propose aux courageux delphinautes présents au poste un petit jeu qui pourrait avoir des conséquences sur certains algorithmes informatiques.
Voici la règle du jeu, très simple:
Un joueur écrit à mon insu deux nombres différents sur deux cartes qu'il pose, faces cachées, sur la table. Je retourne l'une des deux cartes et je découvre le nombre qui y est inscrit.
-Je peux soit conserver cette carte, soit choisir l'autre.
-Je gagne si je prends la carte qui a le plus grand des deux nombres; sinon, je perds.
Plus simple, tu meurs, non?
Question:
Quelles sont mes chances de gagner à ce jeu?
Il semble évident que j'ai une chance sur deux de gagner, comme dans le jeu de pile ou face, n'est-ce-pas?
Eh bien non!
Il existe une stratégie qui conduit à une probabilité de gain supérieur à 0.5 !
Si vous avez des idées et si vous n'avez pas lu le "POUR LA SCIENCE" du mois d'août, proposez... :)))
Je donnerai la réponse demain. Et je pense qu'elle en étonnera plus d'un.
(Je précise qu'il n'y a aucun truc. C'est que des maths!)
Tu parles de chiffres : soit 0,1,2,3,4,5,6,7,8,9 .
Par rapport à la première carte, on a 10 cas possibles correspondants aux chiffres.
Parmis ces 10 cas, les 9 derniers induisent une probabilité relative de 1/2 : en effet soit le second chiffre est supérieur au premier soit il est inférieur. Donc on a une chance de 1/2 de gagner.
Le premier cas induit une probabilité de 1. En effet si on tire le chiffre zéro (et non le un : j'avais zappé le zéro (Ouhhhhh Francky il ne sait pas compter )), on est sur que le second chiffre est supérieur à zéro. Donc la probabilité d'etre le winner est de 1.
Alors la probabilité totale est : [0,5*9+1]/10 soit 55% .
Dis moi j'espère que le cadeau c'est une photo de Cari avec des plumes . Ca serait sympas que je t'incorpore dans mon abulm photo : j'ai déja Japee mdrrrrr .
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 27 juil. 2007 à 01:44
@ Frankenstein
héhéhé
Bein non! :p
Si tu joues bourrin, t'as qu'une chance sur deux de gagner.
"Un cas précis" n'est pas très mathématique, par ailleurs...
Mais il est vrai qu'on peut provoquer un cas qui gagne à tous les coups, sans pour autant être sûr qu'il advienne. C'est ce qui ajoute quelques % aux 50%...
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 27 juil. 2007 à 02:12
Relis bien la règle du jeu!
-L'adversaire écrit des chiffres qu'il choisit.
(Il ne choisit pas dans un jeu de carte.)
Il est entièrement libre.
De plus, il n'a aucun intérêt à écrire un "zéro".
@Cari : alors là on va se lancer dans un débat probabiliste .
-"Un cas précis n'est pas très mathématique, par ailleurs" : si justement et c'est tout l'art des probabilités.
Par exemple si je te demande la probabilité de tirer une carte autre que l'as de treflle et bien tu as deux manières de traiter le sujet :
°Soit tu étudies tout les cas de figures .
°Soit tu fais justes 1 - la probabilité de tirer justement cette carte.
Et là tu es ramené à l'étude d'un cas de figure précis.
-"Si tu joues bourrin, t'as qu'une chance sur deux de gagner." : n'oublions pas, un joueur qui joue comme un bourrin n'est pas compatible avec un mec qui va se la jouer stratégie. Attention à l'acrobatie que tu vas faire pour essayer de m'embrouiller, je t'ai à l'oeil mon grand
Ps : la seule chose que je voulais dire c'est que si on ne considère que le hasard, on a plus que 50% de chance de gagner.
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 27 juil. 2007 à 03:33
@ f0xi
Les probabilités, comme les jeunes mariées, ne peuvent donner que ce qu'elles ont.
Sur un coup, on peut les juger non fiables. Mais sur le long terme on peut y trouver une certaine satisfaction.
Comme je ne suis pas matheux, j'arrête là. ;)
@Francky
Bonnes vacances!
J'attends que tu sois parti pour donner la soluce?
Hahahaha!
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20083 27 juil. 2007 à 11:23
Hello !
Et si pour changer, c'est moi qui écrit les nombres sur les cartes, au lieu de les tirer. J'écris deux fois le même nombre comme ça je suis sûr que l'autre va perdre car il n'y aura aucune des deux cartes qui sera supérieure à l'autre !
Bon, je vais réfléchir à cette question... je précise que je n'ai pas lu non plus le "pour la science".
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20083 27 juil. 2007 à 12:38
Voila le code d'un petit programme console expérimental.
<hr size="2" width="100%" />program CariGame;
{$APPTYPE CONSOLE}
uses
SysUtils,
Math;
{ ************************** Moteur du jeu ***************************** }
var
N1, N2: Integer;
ChosenFirstCard: Boolean;
procedure ChooseNumbers;
begin
{ Choisit deux nombres (entiers) au hazard }
N1 := RandomRange(Low(Integer), High(Integer));
repeat
N2 := RandomRange(Low(Integer), High(Integer));
until N1 <> N2;
end;
function ChooseCard(FirstCard: Boolean): Integer;
begin
{ Donne le nombre écrit sur la carte voulue (et mémorise la carte) }
ChosenFirstCard := FirstCard;
if FirstCard then
Result := N1
else
Result := N2;
end;
procedure ChangeCard;
begin
{ Change de carte }
ChosenFirstCard := not ChosenFirstCard;
end;
function HasWon: Boolean;
begin
Result := ((N1 > N2) and ChosenFirstCard)
or ((N1 < N2) and not ChosenFirstCard);
end;
{ ************************** Statégies ***************************** }
procedure PlayStategy1;
begin
// On prend toujours la première carte et on change jamais
ChooseCard(True);
end;
procedure PlayStategy2;
begin
// On prend toujours la deuxième carte et on change jamais
ChooseCard(False);
end;
procedure PlayStategy3;
begin
// On prend toujours la première carte et on change toujours
ChooseCard(True);
ChangeCard;
end;
procedure PlayStategy4;
begin
// On prend toujours la deuxième carte et on change toujours
ChooseCard(False);
ChangeCard;
end;
procedure PlayStategy5;
begin
// On prend la première carte et on change si c'est inférieur à zéro
if ChooseCard(True) < 0 then
ChangeCard;
end;
procedure PlayStategy6;
begin
// On prend uen carte au hazard et on change si c'est inférieur à zéro
if ChooseCard(Random < 0.5) < 0 then
ChangeCard;
end;
{ ********************* Testeur de statégies ************************ }
const
NbreStrat = 6;
Strategies: array[1..NbreStrat] of TProcedure =
(PlayStategy1, PlayStategy2, PlayStategy3, PlayStategy4,
PlayStategy5, PlayStategy6);
var
I, J, NbreWin: Integer;
begin
Randomize;
for I := 1 to NbreStrat do
begin
NbreWin := 0;
for J := 1 to 1000000 do
begin
ChooseNumbers;
Strategies[I];
if HasWon then
Inc(NbreWin);
end;
Writeln(Format('Strategy #%d: %.2f', [I, NbreWin / 1000000]));
end;
Writeln('');
Writeln('Who''s the best ? ^^');
Readln;
end.
<hr size="2" width="100%" />
Amusez vous bien
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20083 27 juil. 2007 à 12:45
Aprèas réflexion, cette solution n'est bonne que sur le papier.
Car si l'adversaire connait le truc, il écrit toujours des nombres du même signe et la probabilité retombe à 0.5
Bref, ça m'aura bien retourné l'esprit.
Merci Cari pour ce jeu !
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20083 27 juil. 2007 à 14:04
"2 nombres différents sur 2 cartes": ça veut dire que chaque carte a deux nombres ou bien que l'on choisit deux nombres et qu'on en écrit un par carte ?
A mon avis, c'est la deuxième proposition qui est juste.
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 27 juil. 2007 à 14:33
Arf j'ai trouvé la solution sur le net.
Super, sur ce PC, j'ai le choix entre PHP, vbs et MASM32 sur ce PC pour faire des éssais....
Petit indice : on utilise effectivement le nombre inscrit sur la première carte, et on lui applique un traitement simple qui détermine le choix qu'on fait vi à vis de la deuxième carte sur la table.
PS : Vous attendez pas à du 99.99% de chances de gagner...
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 27 juil. 2007 à 15:06
Bon. Je ne vous laisse pas mariner plus longtemps et j'espère que Francky est encore là pour apprécier...
Effectivement, c'est pas du 99.99% :)
La stratégie:
(On la doit à Thomas Cover, de l'Université de Stanford.)
Pour avoir plus d'une chance sur deux de gagner, il suffit de choisir mentalement, au préalable, un nombre N quelconque et d'accepter le premier nombre s'il est strictement supérieur à N et, sinon, de choisir l'autre carte.
(Perso, je trouve ça beau car ce choix d'un nombre au hasard n'est pas dans l'hypothése...)
Pourquoi une probabilité supérieure à 0.5?
Pour simplifier les explications, désignons par P le plus petit des deux nombres inscrits sur les cartes, et par G le plus grand.
On se retrouve forcément dans l'une des 3 situations suivantes:
a) P >= N. Ce qui implique G > N.
Selon la stratégie adoptée, on garde le premier nombre retourné et on a alors une chance sur deux pour qu'il soit G.
b) G <= N. Ce qui implique P < N.
Dans ce cas, on refuse le premier nombre pour prendre le second et, de nouveau, on a une chance sur deux que ce nombre soit G.
c) P < N < G. N est compris entre P et G.
C'est ici que se trouve le gain!
Dans ce cas, on refuse le premier nombre si c'est P et on le garde si c'est G. Donc, dans ce cas, ON GAGNE TOUJOURS!
Explications:
Si les trois situations se produisent avec des probabilités respectives a, b et c (des valeurs inconnus mais dont la somme est égale à 1), la probabilité totale p de gagner avec cette stratégie est p a/2 + b/2 +c. Or si N est choisi au hasard, la probabilité c est strictement positive. Et puisque a+b+c 1, on en déduit que la probabilité p est strictement supérieur à 1/2.
En fait, p = 0.5 + c/2.
Etonnant, non?
Désolé de vous avoir fait chauffer les neurones, mais ça valait le coup, je pense... :)))