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

#101 02-08-2016 18:52:58

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

Re : Peut - on battre le hasard ?

@Léon,
Ca y est, c'est corrigé.
Mais, de mémoire, la vérification ne faisait pas partie de l'énoncé, et quand j'en ai parlé, on m'a regardé de travers.
Si tu veux une bonne liste, regarde celle de Yassine, je l'ai vérifiée, elle est bonne.
Pour mémoire, dans mon code, j'ai rétabli le tirage au hasard, aux erreurs près.
Comment démontrerais-tu que la moyenne est supérieure à 75 pour 100 parties ?

Hors ligne

#102 02-08-2016 19:08:06

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

Re : Peut - on battre le hasard ?

Dlzlogic a écrit :

Comment démontrerais-tu que la moyenne est supérieure à 75 pour 100 parties ?

Pour chaque triplet T1,...,T100 de la liste exhaustive de Yassine (pour le joueur humain), on constate le nombre de pourcentage de gain G(T1),...G(T100) en parcourant totalement les 338688 triplets croissants strictement positifs de somme 2016. (cela fait donc 100 * 338688 tests ! )

Et ces 100 pourcentages obtenus G(T1),...G(T100) varient entre 76.763 % et 76.562 %, et surtout, leur moyenne arithmétique est 76.65 % (donc supérieure à 75%)

Hors ligne

#103 02-08-2016 19:13:38

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

Re : Peut - on battre le hasard ?

Bon, donc tout va bien.
Cela resterait intéressant de voir la correction officielle de l'auteur de l'exercice.
En tout cas, merci à Freddy, c'était un truc vraiment bien.

Hors ligne

#104 02-08-2016 19:21:29

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

Re : Peut - on battre le hasard ?

leon1789 a écrit :

Il me semble que le plus simple pour réaliser un tirage sur les triplets strictement positifs croissants de somme 2016 suivant la loi uniforme, c'est d’exécuter ces trois petites lignes (en pseudo-code) :

int x1 = rand(1 ... 2016/3)    
int x2 = rand(x1 ... (2016-x1)/2)          
int x3 = 2016-x1-x2              
// ici, 1 <= x1 <= x2 <= x3     et   x1+x2+x3=2016
 

où la fonction rand(a...b) renvoie un entier de l'ensemble {a,a+1,...,b} aléatoirement suivant la loi uniforme.

De cette manière, on produit l'un des 338688 triplets possibles, et il y a une seule façon pour chacun d'entre eux.

Non, cette manière de faire ne suit pas la loi uniforme non plus : [1,1,2014] a 1007 fois moins de chance d'être obtenu que [672,672,672] .  Grrr

Donc, pour l'instant, mis à part lister brutalement les 338688 triplets pour en choisir suivant la loi uniforme, je ne vois pas comment programmer cela de manière élégante...

Hors ligne

#105 02-08-2016 19:23:26

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

Re : Peut - on battre le hasard ?

Dlzlogic a écrit :

regarde celle de Yassine, je l'ai vérifiée, elle est bonne.

oui, elle est bonne. Mais comment l'as-tu vérifié ?

Hors ligne

#106 02-08-2016 19:31:49

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

Re : Peut - on battre le hasard ?

@ Léon, de mémoire, j'ai vérifié que tous les triplets étaient différents et ... je sais plus quoi.
Par contre, je ne sais pas comment elle a été faite. Si tu le sais, je veux bien que tu m'expliques.

Hors ligne

#107 02-08-2016 19:45:46

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

Re : Peut - on battre le hasard ?

Dlzlogic a écrit :

Par contre, je ne sais pas comment elle a été faite. Si tu le sais, je veux bien que tu m'expliques.

Yassine l'a eu par calcul, c'est expliqué  ici : http://www.bibmath.net/forums/viewtopic … 359#p58359


Les triplets de Yassine sont tous différents, ok, c'est facile à vérifier, aucun souci là-dessus !

Dlzlogic a écrit :

regarde celle de Yassine, je l'ai vérifiée, elle est bonne.

Je répète ma question : comment as-tu vérifié qu'elle est bonne, c'est-à-dire qu'elle donne un taux de réussite > 75 % ?

Hors ligne

#108 02-08-2016 20:43:14

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

Re : Peut - on battre le hasard ?

On se trompe de problème.
L'énonce de Freddy est très clair et précis.
La liste de Yassine est bonne, OK tout va bien.
J'ai produit ma propre méthode, problème résolu, passons à autre chose. J'insiste passons à autre-chose.
Pour répondre de façon précise à ta question précise, j'ai vérifié que la liste de Yassine, dont on ne connait pas vraiment l'origine, respecte les conditions de l'énoncé.
Par ailleurs, les simulations m'ont permis de vérifier que le gain de l'homme était supérieur à 80% pour un tirage aléatoire, alors que si on fait un tirage sélectif, par tranche, selon ta méthode qui ne correspond pas à l'énoncé, on est autour de 75%. C'est la seule raison pour laquelle j'ai parlé de simulation pour "vérification".
Pour simplifier, en respectant l'énoncé, on arrive à 80%, avec certains calculs on arrive à 75%. D'ailleurs un visiteur a bien mis le doigt sur le problème. Alors, la question est réglée, POINT.
Le seul point sur lequel je me permets d'insister : le corrigé officiel du rédacteur.

Hors ligne

#109 02-08-2016 21:16:40

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

Re : Peut - on battre le hasard ?

<< en respectant l'énoncé, on arrive à 80%, avec certains calculs on arrive à 75% >>
C'est complètement contradictoire car 80 n'est pas égal à 75 ! Alors c'est 80% ou 75% ??

On ne se trompe pas du tout de problème, et il n'y a pas de POINT... Jusqu'à présent, tous les codes pour simuler des parties entre humain et machine (chez Yoshi, chez toi, et même mes trois lignes de code) sont faux ! (il ne simule pas correctement l'algorithme de la machine selon l'énoncé). Donc rien n'est réglé de ce coté là.

EDIT : cette simulation de Yoshi http://www.bibmath.net/forums/viewtopic … 309#p58309 est correcte, mais sans "élégance" pour les tirages machines : Trp[random.random_integers(0,338687)] . Cela dit, je ne sais pas faire autrement...

Les codes de Yassine ne sont pas des simulations, mais des calculs de dénombrement. C'est autre chose : il n'y a aucune probabilité dans ce qu'il a fait pour répondre au problème.

Pour la liste de Yassine, la vraie proba de gain est 76.65 % (confer Yassine ici http://www.bibmath.net/forums/viewtopic … 286#p58286, ce que j'ai pu vérifié comme je le dis ici http://www.bibmath.net/forums/viewtopic … 391#p58391 ). Ce taux de 76.65% est calculé, de manière exacte, par des dénombrements.

Et vu que Yassine a pris (je n'ai pas vérifié cela, je lui fais confiance) les 100 meilleurs triplets, je doute fort qu'on puisse allez au-dessus de 76.65 % !

Alors comment arrives-tu à 80 % ? Est-ce que ta simulation est correcte ? Comprends-tu où est la difficulté ? J'ai l"impression que tu en es loin, vu tes codes (qui ont simplement du mal à fabriquer des triplets valides) et tes dernières réponses qui veulent évacuer la question.

Tu dis avoir fait des simulations : ok, mais pour faire une simulation CORRECTE, il faut faire des tirages aléatoires de triplets croissants strictement positifs de somme 2016 suivant la loi uniforme (triplets joués par la machine face à l'humain). Comment fais-tu ? 
...si tu fais des tirages qui ne respectent pas l'énoncé, alors tes simulations ne vérifient rien du tout par rapport au problème tel qu'il est posé.

Dernière modification par leon1789 (02-08-2016 21:42:50)

Hors ligne

#110 02-08-2016 21:22:52

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

Re : Peut - on battre le hasard ?

leon1789 a écrit :

Donc, pour l'instant, mis à part lister brutalement les 338688 triplets pour en choisir suivant la loi uniforme, je ne vois pas comment programmer cela de manière élégante...

La question est intéressante !
En gros, il s'agit de trouver la bijection inverse de la bijetion "naturelle" associée à mon algorithme de génération des triplets.
Si je note $N$ le nombre total de triplets, on veut troouver $\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)

Dernière modification par Yassine (03-08-2016 07:25:16)

Hors ligne

#111 02-08-2016 21:39:35

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

Re : Peut - on battre le hasard ?

Pour moi, l'élégance (ne pas attendre pas une définition mathématique ;) ), c'est juste éviter un énorme calcul par machine ou un énorme stockage en machine.

Yassine, je vais essayer de réfléchir à ta piste ...

Hors ligne

#112 02-08-2016 21:49:06

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

Re : Peut - on battre le hasard ?

Bon, c'est tout de même assez marrant. Il y a eu pas mal d'échanges. j'ai fait une proposition de stratégie, complètement fausse, mais personne n'a rien dit.
Puis Yassine a produit une liste de triplets sans préciser la méthode de fabrication. Naturellement pour tout lecteur, cette liste a été copiée d'on ne sait où.
Bref quelque soit le bout d'où on le regarde l'exercice proposé par Freddy est résolu. Par contre, personnellement j'aimerais bien avoir la correction officielle.
Léon, je répondrai toujours de la manière la plus posée possible. Je sais très bien que ta seule préoccupation, concernant cette question, est de tenter de me faire dire quelque-chose qui pourrait être jugée comme incompatible avec la charte du présent forum.
Je te rappelle que concernant le présent exercice proposé par Freddy je n'ai pas à me justifier de quoi que ce soit. Il me semble que la seule chose que j'ai dite et qui puisse être à discuter est "Comment démontrer ?"         

Concernant le côté strictement mathématique, il me semble que la différence de résultat entre 75% et 80% (environ) provient uniquement du fait de la façon de comprendre le terme de l'énoncé "au hasard". Je rappelle qu'un membre a insisté sur ce point. Cependant je tiens  à ajouter que ce point précis est un détail mineur concernant l'élaboration de la stratégie de l'homme.

Hors ligne

#113 02-08-2016 22:32:08

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

Re : Peut - on battre le hasard ?

Dlzlogic a écrit :

je n'ai pas à me justifier de quoi que ce soit. Il me semble que la seule chose que j'ai dite et qui puisse être à discuter est "Comment démontrer ?"

Il faut justifier ses affirmations, c'est la moindre des choses. Donc il faut démontrer (ou donner le moyen aux autres intervenants de le faire) ce que l'on dit. C'est ce que je te demande de faire...

Dlzlogic a écrit :

Concernant le côté strictement mathématique, il me semble que la différence de résultat entre 75% et 80% (environ) provient uniquement du fait de la façon de comprendre le terme de l'énoncé "au hasard". Je rappelle qu'un membre a insisté sur ce point.

Oui, je suis absolument d'accord, le terme "au hasard", tel quel, laisse un certain flou.
Et c'est exactement le coeur du paradoxe de Bertrand.

Dlzlogic a écrit :

Cependant je tiens  à ajouter que ce point précis est un détail mineur concernant l'élaboration de la stratégie de l'homme.

Non, c'est un point essentiel dans l'élaboration de la stratégie à adopter dans ce problème, car c'est en connaissant la loi du tirage aléatoire de la machine que l'on peut justifier mathématiquement que la liste humaine passe ou pas le taux de 75 %.

Par exemple :
- la liste de Yassine obtiendra un score de 0% si la machine choisit exclusivement (mais avec un aléa) des triplets [x,y,z] où y > 800.
- la liste de Yassine passe à 76% quand la machine choisit un triplet suivant la loi uniforme sur les 338688 triplets possibles...

Bref, c'est absurde de dire << la liste de Yassine fonctionne bien, pas de problème >> sans préciser la loi de probabilité sur les triplets jouables.

Le problème n'est pas de lire un résultat obtenu par un code plus ou moins correct.
Le problème est bien de prouver mathématiquement les choses... et pour cela, il faudra une loi de proba pour les tirages de triplets de la machine  : pour l'instant, c'est la loi uniforme car elle la plus simple conceptuellement, mais on peut changer si tu veux.

Hors ligne

#114 02-08-2016 22:32:39

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

Re : Peut - on battre le hasard ?

Dlzlogic a écrit :

Bon, c'est tout de même assez marrant. Il y a eu pas mal d'échanges. j'ai fait une proposition de stratégie, complètement fausse, mais personne n'a rien dit.

Même si ça n'est pas une vraie démonstration, l'étude statistique faite par Yoshi post #80 me parait assez édifiante sur l'exactitude de ta solution.

Dlzlogic a écrit :

Puis Yassine a produit une liste de triplets sans préciser la méthode de fabrication.

Yassine donne l'algorithme de fabrication de ses triplets post #43 ainsi qu'une démonstration post #45.
Le fait est que tu n'as rien compris à sa démonstration.

Dlzlogic a écrit :

Naturellement pour tout lecteur, cette liste a été copiée d'on ne sait où.

Sous-ententrais-tu que Yassine aurait triché?

Dlzlogic a écrit :

Bref quelque soit le bout d'où on le regarde l'exercice proposé par Freddy est résolu.

En effet, résolu par Yassine. Et la discussion serait close depuis longtemps si quelqu'un n'avait demandé de vérifier statistiquement qu'une démonstration parfaitement rigoureuse est vraie...

Dlzlogic a écrit :

Par contre, personnellement j'aimerais bien avoir la correction officielle.

Qu'entends-tu par officielle?
Freddy a indiqué dès le post #10 qu'il n'était pas en possession de la solution.
Mais de toute façon tu as déjà une correction qui convient tout à fait : celle de Yassine !

Dlzlogic a écrit :

Concernant le côté strictement mathématique, il me semble que la différence de résultat entre 75% et 80% (environ) provient uniquement du fait de la façon de comprendre le terme de l'énoncé "au hasard". Je rappelle qu'un membre a insisté sur ce point. Cependant je tiens  à ajouter que ce point précis est un détail mineur concernant l'élaboration de la stratégie de l'homme.

Un détail mineur !!???!?#{(@(8/!!!!!
Sérieusement !?!
C'est la base de tout problème faisant intervenir des probabilités de définir la loi que l'on utilise. Changer la manière dont la machine obtient ses triplets revient à avoir un exercice radicalement différent.
Il est primordial, surtout pour toi, que tu assimiles enfin ce fait. C'est un préliminaire absolument nécessaire avant de s'attaquer au "grands théorèmes de proba" telle que le TCL.


[edit] devancé par leon de 31 secondes...

Dernière modification par tibo (02-08-2016 22:37:36)

Hors ligne

#115 03-08-2016 10:54:26

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

Re : Peut - on battre le hasard ?

Dlzlogic a écrit :

Puis Yassine a produit une liste de triplets sans préciser la méthode de fabrication.

Dlzlogic a écrit :

Naturellement pour tout lecteur, cette liste a été copiée d'on ne sait où.

Je trouve ces propos insupportables.
Ce n'est pas parce que tu n'es pas capable de comprendre une démonstration que tu peux simplement nier son existence. J'ai posté la rédaction formelle de mon approche (que tu as avoué ne pas comprendre) et le code Python qui la met en oeuvre et produit les 100 triplets.

De plus, comme dirait yoshi, ton pluriel parait bien singulier ! il ne me semble pas avoir lu de commentaires diffamatoires autres que les tiens.

Ce fil était intéressant, tu as réussi à le pourrir

Hors ligne

#116 03-08-2016 12:40:27

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

Re : Peut - on battre le hasard ?

Bonjour Yassine,

Ne nous fâchons pas. Pour faire simple, je n'ai pas trouvé d'où venait le premier triplet (466,475,475) de la liste "solution", ni dans ton explication, ni dans le code.
D'autre part l'explication de Camille sur l'utilisation du terme de l'énoncé "hasard" me parait tout à fait convaincante, puisque j'ai fait la même approche. Mais encore une fois, ceci est un détail par rapport à la question "comment définir la stratégie de l'homme ?"
Donc ta stratégie consiste à éliminer des triplets "perdants" pour ne garder que les 100 meilleurs de ceux qui restent. C'est ce qui est écrit à la fin de ton PDF.
Après une lecture plus approfondie, et une ou deux pages plus loin, on trouve le message #81 qui donne le code ayant servi à construire la liste des 100 triplets gagnants. Il ne vient pas à l'esprit directement que ce code est antérieur qu code donné au message #43.

Bonne journée.   

@ Tibo. Freddy a indiqué qu'il ne connaissait pas la solution. VRAI.
Par contre manifestement il connait l'auteur. D'ailleurs, je ne pense pas qu'il aurait proposé un exercice s'il ne peut pas donner la solution.

Hors ligne

#117 03-08-2016 13:52:04

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

Re : Peut - on battre le hasard ?

Tes propos sont inadmissibles.
Du fait de ton ignorance du sujet, tu diffames le travail des autres !
Si tu avais dis "je ne vois pas d'où sortent les triplets", c'est complètement acceptable. Au lieu de ça, tu dis "cette liste a été copiée d'on ne sait où", c'est un propos insidieux qui sous entend la malhonnêteté intellectuelle  de ma part. J'aurais copié une liste d'un endroit confidentiel et l'aurait présenté comme un résultat personnel.

Dlzlogic a écrit :

Il ne vient pas à l'esprit directement que ce code est antérieur qu code donné au message #43.

Encore une fois, c'est ta propre ignorance de ce sujet que tu étales.
J'ai présenté le premier code comme une "démonstration informatique" : j'exhibe une liste de triplets et je montre qu'elle a une espérance > 75. A ce stade, je réponds à 100% à l'exercice. Mais je sais que c'est frustrant pour les participants de ne pas savoir d'où viennent ces triplets.
Je poste donc dans la foulée l'explication théorique. A ce stade, tout un chacun peut mettre en œuvre la méthode et trouver exactement les mêmes triplets, ou éventuellement critiquer mon approche, voire la réfuter.
Le dernier post était accessoire, je le postais pour éviter à certains d'avoir à coder directement depuis mon papier. Là réside toute la différence entre nous, j'estime cet élément accessoire là où pour toi c'est essentiel !
Je me demande d'ailleurs ce que tu espères trouver dans la solution "officielle" que publierait éventuellement freddy.

Hors ligne

#118 03-08-2016 16:37:23

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 385

Re : Peut - on battre le hasard ?

Bonjour,


@Yassine.
Tu écris dans ton pdf :

Je commence par quelques notations
1- [tex]E = \{(x_1, x_2, x_3) \in \mathbb{N}^3 \,| \,0 \leqslant x_1 \leqslant x_2 ≤ x_3 \land \sum x_i =2016\}[/tex]
2- [tex]e = |E|[/tex].
3- [tex](a, b, c) ≺ (d, e, f) ⇔ (a < d ∧ b < e) ∨ (a < d ∧ c < f) ∨ (b < e ∧ c < f)[/tex]
4-[tex] inf(x) = {y ∈ E | y ≺ x}[/tex]

Les connecteurs logiques ne sont plus ma tasse de thé depuis des lustres (si tant est qu'ils l'aient été un jour ^_^)... Eh oui, j'ai des kilomètres au compteur...
Alors j'ai fait l'effort d'aller vérifier si ça disait bien ce qu'il me semblait que ça voulait dire...
Après, effectivement que la pièce maîtresse de ton pdf est là :

Le point le plus important `a remarquer est que, du fait que les triplets ont la même somme, si x ≺ y, alors une des composantes de x est strictement supérieure à la composante de même rang dans y (elle ne peut pas lui être inférieure ou égale).
Formellement, [tex]\forall\, x, y \in  E, x ≺ y \Rightarrow x_1 > y_1\,∨\,x_2 > y_2\,∨\,x_3 > y_3[/tex].
On peut le voir assez rapidement en écrivant que [tex](y_1 − x_1)+(y_2 − x_2)+(y_3−x_3) = 0[/tex], et d’après la définition de x ≺ y, au moins deux éléments de cette somme sont strictement positifs, le troisième doit être donc strictement négatif pour que la somme soit nulle.

C'est de ce constat que tout découle (d'ailleurs tu m'avais signalé au passage que True+True+True était impossible, et je m'étais dit : ah bon... Maintenant c'est clair.  ). Que ceux qui ont la GdB en lisant, fassent ce même effort...

@leon

EDIT : cette simulation de Yoshi http://www.bibmath.net/forums/viewtopic … 309#p58309 est correcte, mais sans "élégance" pour les tirages machines : Trp[random.random_integers(0,338687)] . Cela dit, je ne sais pas faire autrement...

Qu'est-ce qui n'est pas élégant ? Je tire au hasard (bêtement) - avec équiprobabilité- un des 300000 et quelques triplets possibles...
Si tu peux répondre, alors - peut-être -  pourrai-je corriger ? Qu'est-ce qui rendrait le job de la machine élégant ? que celui qui l'a programmée pour sortir un des triplets, y ait introduit une part d'IA ? laquelle ?

@Dlz
Je remonte ceci :

yoshi a écrit :

Salut,

Il ne s'agit en aucun cas d'un troll. Cette remarque, reçue par mail ce matin m'a donnée l'occasion de répondre à certains qui ne cherchent qu'à envenimer les échanges.

Pas moi, ni avec casquette modo, ni sans. Si je le faisais, au pire tu te demanderais si... au mieux, tu ne t'en apercevrais pas...
Pas leon, ton vieil "ennemi", je le crois au dessus de ça...
Pas tibo, pas son style,
Pas Yassine, je pense qu'il a suffisamment montré de quoi il était capable en Maths et en Python.
Freddy ? Bah, il est "rugueux", mais c'est son humour à,lui... Mais il t'es arrivé de l'exaspérer au plus haut point...
Alors qui ? qui cherche à envenimer les échanges ?  Et t'as intérêt à justifier ta réponse...
V'la un troll qui promet...
A qui as-tu répondu ? Et comment ? Parce que moi, je ne la vois pas cette fameuse réponse (sous entendu cinglante et définitive...).

@+

Ne sachant toujours pas qui ne cherchent à envenimer les échanges - sic ! - (j'attends encore !) j'ai relu toutes les discussions où tu étais présent et je constate qu'elles se terminent toutes "en eau de boudin"... Bizarre ! vous avez dit bizarre ? A la réflexion, je crois avoir un dénominateur commun... ^_^

Cela dit dans l'attente, il y a encore ceci :

Celui qui a écrit cet avis sur Python, c'est pas un secret, c'est mon fils. Il est vrai que comme moi, il s'est passionné pour l'informatique, mais lui il a fait des études dans ce sens. Sa spécialité est plutôt le domaine de la sécurité, mais il connait beaucoup de langages et je sais qu'il est compétent pour donner un avis personnel argumenté.

D'ac. Alors au dogme de l'infaillibilité du pape, il faut ajouter celui de l'infaillibilité informatique  de Dlz fils ?
J'apprécie beaucoup mes filles, mais je ne prends pas pour argent content ce qu'elles me disent même dans leur domaine de compétence. Pour moi nul, n'est infaillible : arx tarpeia capitoli proxima  et si le latin te rebute, je t'en donne la version de Michel Eyquem Seigneur de Montaigne dans ses Essais, << Au plus haut trône du monde, on n'est jamais assis que sur son cul. >> Et ce mot n'avait, à l'époque pas la même connotation grossière qu'aujourd'hui.

Moi, je n'aime pas le C (et pourtant, je ne le débine pas !), ton fils n'aime pas Python ; ainsi que j'ai eu l'occasion de te le dire, chacun ses goûts :

Je ne cherche pas à te convaincre de la supériorité de Python, chacun ses goûts, mais je voudrais faire sauter tes préventions basées sur des on-dit et te prouver que non, ce n'est pas illisible, non le code n'es pas in-maintenable...
Il faut comme dans tout langage, structurer sa pensée, son code et penser justement à la maintenance ultérieure...
Un code écrit avec les pieds sera, qqst le langage, illisible et in-maintenable : c'était le cas de mes premiers codes en Basic Locomotive celui de l'Amstrad CPC 6128.

Tout ça pour dire que lorsque tu me réponds :
Concernant les avis sur Python, il me semble que rien n'interdit d'avoir un avis différent d'autres et de le dire
je me sens envahi d'une grande lassitude (et/ou découragement) : comprends-tu ce que je t'écris ?
Je t'avais mis deux liens : l'un qui listait les réponses à cette question fondamentale : Python est-il adapté à, un usage professionnel ? il ressortait de tes interventions que ton fils aurait dit non. alors je t'ai donné des avis - partagés - sur la question.
L'autre lien portait sur Avantages/inconvénients de C++ et Python : ça se voulait objectif...
D'accord C++ n'est pas C : j'ai cherché vite fait et pas trouvé, mais ce n'est pas très loin...
Où as-tu vu que j'essayais - en douce -v de te forcer à admettre que tu étais dans l'erreur ?
As-tu lu ces liens ?
Tiens un autre : http://www.commentcamarche.net/forum/af … -ou-python

Moi, j'ai écrit des petits scripts en C et en C++... Toi, as-tu essayé le Python ?
Ou alors ta réponse sera-t-elle : Pourquoi faire ? Mon fils me dit que c'est le pire des langages...
J'ai lu quelque part, il faudra que je le retrouve, qu'il existe une forme de récursivité que C peut traiter et pas Python : voilà un fait objectif...
Alors, j'ai cherché à comprendre pourquoi et j'ai trouvé que la question avait déjà été posée au "père" du langage (Guido van Rossum) : de sa réponse (où je n'ai pas tout compris d'ailleurs), il ressortait que c'était volontaire (trop problématique)...
Allez, je fouille pour vous...
Bon, si ça intéresse quelqu'un :
http://neopythonic.blogspot.fr/2009/04/ … ation.html

@+

Hors ligne

#119 03-08-2016 17:20:32

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

Re : Peut - on battre le hasard ?

yoshi a écrit :

@leon

EDIT : cette simulation de Yoshi http://www.bibmath.net/forums/viewtopic … 309#p58309 est correcte, mais sans "élégance" pour les tirages machines : Trp[random.random_integers(0,338687)] . Cela dit, je ne sais pas faire autrement...

Qu'est-ce qui n'est pas élégant ? Je tire au hasard (bêtement) - avec équiprobabilité- un des 300000 et quelques triplets possibles...
Si tu peux répondre, alors - peut-être -  pourrai-je corriger ? Qu'est-ce qui rendrait le job de la machine élégant ? que celui qui l'a programmée pour sortir un des triplets, y ait introduit une part d'IA ? laquelle ?

Salut
Comme je le disais à Yassine : pour moi, l'élégance pour tirer "uniformément un triplet" serait de ne pas faire un gros stockage, ni un gros calcul non plus. Bref, comment ferait-on "à la main" ?... Yassine s'est penché sur ce problème ici http://www.bibmath.net/forums/viewtopic … 412#p58412

Mais au moins, tirer à coup de "rand" sur les 336388 triplets, c'est simple et efficace.

Quant à la IA, c'est une autre histoire...

Hors ligne

#120 03-08-2016 22:00:59

Boody
Membre
Inscription : 31-03-2014
Messages : 183

Re : Peut - on battre le hasard ?

Bonjour Forum,

Tirer(*) 3 nombres aléatoires entre 1 et 2016, les ordonner, puis choisir comme triplet "aléatoire"
- [le plus grand - le moyen]
- [le moyen - le plus petit]
- [(le plus petit - le plus grand) modulo 2016]

la somme fait 2016
l'idée au départ était de choisir aléatoirement 3 sommets d'un polygone régulier à 2016 cotés et choisir comme triplet aléatoire le nombre de segment entre chaque sommet

Est-ce que c'est bien équiprobable ?

(*)Retirer tant que plusieurs des nombres initiaux sont identiques


EDIT : ah ben en fait ça correspond à ce que Camille a déjà donné en #42

Dernière modification par Boody (03-08-2016 23:16:29)

Hors ligne

#121 04-08-2016 05:22:23

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

Re : Peut - on battre le hasard ?

Salut à tous,

et un grand bravo à Yassine ! Je n'ai pas la solution "officielle", c'est-à-dire celle de l'auteur du problème de mathématique amusante*, mais la solution de Yassine devrait ne pas s'en éloigner de beaucoup puisqu'il a trouvé une séquence de 100 triplets qui, quels que soient les 100 triplets construits par la machine (on remarque que ces 100 triplets peuvent être tous les mêmes, avec une proba faible, mais non nulle. Précision : un proba nulle dans le cas discret = événement impossible ; dans le cas continue, on parle d'un événement diffus), les dominent plus de 3 fois sur 4. La démonstration est donnée dans sa preuve, il se sert de l'outil informatique qui respecte les contraintes logiquement trouvées. L'écriture de l'algorithme** de fabrication donne la manière de fabriquer ces 100 triplets, donc la réponse est complète, même si impénétrable pour certain(s).

Pour un géomètre, Dzl est bien borné, chapeau bas :-)

A ceux qui contestent le tirage aléatoire selon une loi uniforme de chaque triplet, la réponse de Yassine est à nouveau limpide : elle consiste à numéroter les 338.688 triplets et à tirer au hasard avec remise 100 numéros parmi les 338.688 !

*amusante car il y a dans son énoncé tous les ingrédients pour "enduire" les lecteurs d'erreurs d'interprétation, et donc rendre le sujet encore plus complexe a priori qu'il ne l'est à la racine.

** Je prends le premier cas. On considère que [tex]Y[/tex] domine [tex]X[/tex] [tex]\Longleftrightarrow[/tex] il existe trois entiers naturels non nuls tels que :
[tex]\begin{cases} y_1=x_1+a \\ y_2=x_2+b \\ y_3=x_3-c \end{cases}[/tex] [tex]\Longleftrightarrow[/tex] les trois entiers appartiennent au plan d'équation [tex]a+b=c[/tex].

A partir de cette contrainte, il considère un triplet [tex]X[/tex] donné (celui tiré au sort par la machine), et en déduit tous les triplets [tex]Y[/tex] qui le dominent, c'est à dire toutes les valeurs des trois entiers naturels non nuls tels que [tex]a+b=c[/tex] sous diverses contraintes telle que que par exemple [tex]c[/tex] ne peut être supérieur à 2014 ni inférieur à 2, car [tex]a[/tex] et [tex]b[/tex] sont au minimum égaux à 1, usw ..., et retient les 100 triplets qui dominent plus de 3 fois sur 4 chacun des 338.688 autres triplets, comme expliqué théoriquement par Yassine.

Le problème ne concerne qu'un nombre fini de situations, nul besoin de faire des simulations, bien entendu.


[EDIT by Yoshi]Pas la peine d'en rajouter, mon pote : n'en jette plus la cour est pleine... Ne m'en veux d'avoir coupé ton PS pourtant humoristique...

Dernière modification par yoshi (04-08-2016 06:42:13)

Hors ligne

#122 04-08-2016 06:50:03

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

Re : Peut - on battre le hasard ?

freddy a écrit :

il a trouvé une séquence de 100 triplets qui, quels que soient les 100 triplets construits par la machine, les dominent plus de 3 fois sur 4. La démonstration est donnée dans sa preuve, il se sert de l'outil informatique qui respecte les contraintes logiquement trouvées.

Salut,
Ne nous emballons pas : les 100 triplets de Yassine ne dominent pas toutes les listes construites que la machine peut construire... Comme je disais à Dlzlogic, si la machine choisit aléatoirement des triplets de la forme (x,y,z) avec y>800, alors la liste de Yassine fait 0% !
La liste de Yassine fonctionne à 76% sous l'hypothèse que la machine tire ses triplets suivant la loi uniforme.

Dernière modification par leon1789 (04-08-2016 07:55:35)

Hors ligne

#123 04-08-2016 07:24:52

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 385

Re : Peut - on battre le hasard ?

Bien le bonjour,

Suite aux remarques de leon et Yassine, j'ai réfléchi au problème de l'élégance des tirages machine.
J'ai trouvé une idée a minima :

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,51

for k in range(1,n):
    succes=0
    for r in range(100):
        # # Tirage machine (distribution uniforme)
        i=random.random_integers(1,672)
        j=random.random_integers(i,(2016-i)//2)
        a=(i,j,2016-i-j)
        b =Sol[r]         # Tirage homme   (distribution uniforme)  
        succes+=(cmp(a,b)>1)
    print("Essai n° %3i" % k," de 100 tirages :", succes," succès")
    S+=succes

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

Hélas, il doit y avoir un hic quelque part, jugez-en :

Essai n°   1  de 100 tirages : 72  succès
Essai n°   2  de 100 tirages : 72  succès
Essai n°   3  de 100 tirages : 71  succès
Essai n°   4  de 100 tirages : 73  succès
Essai n°   5  de 100 tirages : 74  succès
Essai n°   6  de 100 tirages : 70  succès
Essai n°   7  de 100 tirages : 75  succès
Essai n°   8  de 100 tirages : 79  succès
Essai n°   9  de 100 tirages : 70  succès
Essai n°  10  de 100 tirages : 68  succès
Essai n°  11  de 100 tirages : 72  succès
Essai n°  12  de 100 tirages : 72  succès
Essai n°  13  de 100 tirages : 70  succès
Essai n°  14  de 100 tirages : 66  succès
Essai n°  15  de 100 tirages : 73  succès
Essai n°  16  de 100 tirages : 72  succès
Essai n°  17  de 100 tirages : 76  succès
Essai n°  18  de 100 tirages : 76  succès
Essai n°  19  de 100 tirages : 74  succès
Essai n°  20  de 100 tirages : 76  succès

--->  Moyenne : 72.55

Je vais déjeuner, et j'y réfléchis...
J'ai une vérif à faire.

@+

Hors ligne

#124 04-08-2016 07:25:51

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

Re : Peut - on battre le hasard ?

Boody a écrit :

Bonjour Forum,

Tirer(*) 3 nombres aléatoires entre 1 et 2016, les ordonner, puis choisir comme triplet "aléatoire"
- [le plus grand - le moyen]
- [le moyen - le plus petit]
- [(le plus petit - le plus grand) modulo 2016]

la somme fait 2016
Est-ce que c'est bien équiprobable ?

Sans changer la loi de probabilité sous-jacente, on peut supposer que le plus grand vaut 2016 (et les deux autres entre 1 et 2015). On obtient le triplet
- [2016 - le moyen]
- [le moyen - le plus petit]
- [le plus petit]
qu'il faut réordonner de manière croissante...

La proba d'obtenir [672,672,672] est 3 fois plus petite que celle pour [1,1,2014].

Hors ligne

#125 04-08-2016 07:29:41

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

Re : Peut - on battre le hasard ?

yoshi a écrit :

Bien le bonjour,

Suite aux remarques de leon et Yassine, j'ai réfléchi au problème de l'élégance des tirages machine.
J'ai trouvé une idée a minima :


        # # Tirage machine (distribution uniforme)
        i=random.random_integers(1,672)
        j=random.random_integers(i,(2016-i)//2)
        a=(i,j,2016-i-j)
 

Yoshi,
cette manière de construire des triplets ne suit pas la loi uniforme, confer http://www.bibmath.net/forums/viewtopic … 394#p58394

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 six plus trente six
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