Average color of national flags


Intoduction

The goal of this article is to create a map of each national flag average color. All of the national flags are made from several combinations of colors with specific proportions in their design (except for the Lybian flag which consists on a green rectangle). Caution should also be taken regarding the shade of each color. The blue in the french flag is not the same blue as in the Swedish flag or the blue in the US flag for example... Computation should then be done country by country.

Process

To do so, one just need to "read" the flag from a picture file. This picture will be easily transformed into a matrix of colors (one pixel of the flag will be of one specific color). Once done, it is easy to count the proportion of each color on the flag and average it to create one unique color. You can see some examples below:





These examples show some easy cases but same type of result could be obtained for trickier flag designs.

Result

 

Once done for all the countries, a map could be drawn with the "average" color of each country's national flag.



Interpretation


I am not sure an interpretation could be of any relevance, but it appears that African flags tends to be more green-blackish compared to the rest of the world. On the other hand, South American flags have more vivid colors and north hemisphere countries tends to mostly use a mix of blue and red that results in different shades of pink/purple.



Carte des toilettes publiques de Paris


Et si on veut aller aux petits coins?


La vie est bien faite, la mairie de Paris propose en open data la localisation de toutes les sanisettes et toilettes de la capitale. On peut donc calculer la densité de sanitaires par km². On peut inclure dans le calcul les deux bois (de Vincennes et de Boulogne) puisque nous disposons de l’intégralité du positionnement des différents d'espaces d'aisance. Ici, les 644 points disponibles sont représentés. On supposera dans la suite de cet article que la base de données de la ville de Paris est exhaustive. Je n'ai pas les moyens, ni l'envie (hihihi) d'aller les vérifier une par une. Certains sanitaires de la ville semblent aussi être gérés sous forme de concession et peuvent ne pas apparaitre dans ces résultats. Chaque petit point foncé sur la carte représente une sanisette ou des toilettes.


La carte ci-dessus montre que le IVème arrondissement compte 18 sanitaires par km² suivi par le Xème et le XVIIIème. Les arrondissements les plus mal lotis disposent de moins de 5 sanitaires par km².

De manière plus précise, il est possible (et laborieux), de créer une grille virtuelle (ici il s'agit d'une grille 200 par 200) et à chaque point de cette grille on va évaluer le temps de marche a pied nécessaire pour atteindre les toilettes les plus proches. Pour cela on utilisera une API permettant de calculer les temps de trajet (comme ce que propose Google et plein d'autres sites). La limite de ces API est souvent le nombre de requête que l'on peut effectuer gratuitement ainsi que le temps de calcul. Pour estimer environ 20 000 distances il a fallut plusieurs heures.
Une fois cela fait, on peut alors colorier le résultat. Pour que les différentes zones soit plus facilement visibles, il a été décidé de classer chacun de ces points en cinq catégories en fonction du temps de marche : 

- Moins de 2 minutes de marche à pied aux toilettes les plus proches,
- Entre 2 et 5 minutes, 
- Entre 5 et 10 minutes,
- Entre 10 et 15 minutes et enfin 
- Plus de 15 minutes de marche à pied.
 

 
Évidemment les zones les plus délaissées sont les bois de Vincennes et de Boulogne où il faudra savoir anticiper vos besoins (sinon vous allez vous cacher derrière un arbre, il y en a plein). Il existe malgré tout des zones dans Paris intramuros où il faudra marcher quand même une dizaine de minutes avant de trouver le Graal de faïence.

Répartition par arrondissement

Le graphique ci-dessous représente la probabilité d'être dans chacune des catégories de temps pour chaque arrondissement. Ainsi, dans le XIIème arrondissement, vous aurez à marcher plus de 10 minutes dans la moitié des cas (principalement à cause du bois de Vincennes). On observe a peu près le même résultat pour le XVIème. Finalement, un arrondissement plus compliqué que prévu est le Ier arrondissement, que l'on pourrait supposer bien desservit de par sa position centrale dans la ville mais il y sera peu probable d'y trouver des toilettes sans marche au moins 5 minutes (2/3 des cas).

Conclusion

 

Cette analyse semble montrer une grande disparité dans la répartition des toilettes publiques de la capitale qui ne semble pas forcement liée à leur position respective (les arrondissement centraux ne sont pas nécessairement les mieux lotis).


Cartes des arbres de Paris


Répartition des arbres dans Paris

La mairie de Paris propose en open data plein de jeux de données qui permettent de faire de jolies cartes.

La première carte que l'on peut faire est celle de la répartition des arbres dans les différents arrondissements. En effet, chaque arbre de Paris est localisé et on dispose de différentes informations les concernant (diamètre, hauteur..) On peut alors faire des statistiques par arrondissement. La carte suivante indique la densité d'arbre par arrondissement (exprimée en nombre d'arbres par km²). 

Il faut noter cependant une adaptation qui a du être faite concernant le bois de Boulogne et le bois de Vincennes. En effet, ces deux bois font partie des arrondissements de Paris (le XVIème et le XIIème) mais la mairie ne propose pas d'information sur les massifs, les chiffres sont donc très largement sous-estimés. De plus, ajouter les arbres de ces deux bois augmentent de manière très importante la densité d'arbre par km².

Pour le XIIème arrondissement, en excluant le bois de Vincennes on compte 1974 arbres par km² et en incluant le bois on a 9553 arbres par km².
Pour le XVIème arrondissement, en excluant le bois de Boulogne on compte 2164 arbres par km² et en incluant le bois on a 10208 arbres par km².

Dans la carte qui suit, chaque point gris-vert représente un arbre, sur la surface de la ville on en compte 164 000.


 Tableau de synthèse

ArrondissementSuperficie (km²)Nb d'arbresDensité
11.821705934
20.99538543
31.1712441062
41.627651727
52.542499984
62.151783828
74.0987862148
83.8872461868
92.181188545
102.8934361188
113.6759191615
126.38126001975
137.15169042364
145.61120172140
158.49172892035
167.91171192164
175.67110711953
186104591744
196.79144322125
205.98155722603



Approximation de π grace au triangle de Pascal (le grand frère)

La formule de Leibniz pour approximer π


Il existe de nombreuses manières d'approximer le nombre π. Dans l'antiquité on se contenait d'approximer π au moyen de fractions plus ou moins complexes. Mais dès le Moyen-Age c'est par le biais de séries que l'on a pu avoir les meilleures résultats. Ces séries sont juste des suites (infinies) d'opérations qui, à chaque étape (ou itération) se rapprocheront de plus en plus de la valeur de π. L’inconvénient de cette méthode est que comme ces suites sont infinies, la précision du résultat dépend du nombre d’itération que l'on peut calculer ce qui est limité par le temps que l'on peut y passer et les moyens technologiques à disposition. 

La formule de Madhava-Leibniz fut calculée à l'époque pour les 21 premiers termes ce qui permis de trouver la valeur de π à la 11ème décimale :

Formule de Madhava-Leibniz

Vous pouvez tenter de calculer les 21 premiers termes à la main et me dire combien de temps ça vous a pris.

Une autre version intéressante est attribuée elle aussi à Leibniz, qui fut le premier à réellement l'expliciter (même si Gregory avait défini le cas général et que la formule de Leibniz en est dérivée pour un cas très simple). Elle est définie de la façon suivante :

Formule de Leibniz
Leibniz, hippie avant l'heure

Cette formule est très simple puisqu'elle consiste en une somme de fraction unitaires (c'est à dire de fractions où le numérateur vaut 1) divisée par tous les nombres impairs. C'est simple et facile à se rappeler. Cependant elle à l’inconvénient de converger trèèès lentement ce qui la rend globalement inutile en pratique. Il faut noter que ces nombres impairs composent la deuxième "diagonale"du triangle de Pascal (ça semble trivial mais cela a un intérêt pour la suite)




La formule de Toloza

Une autre version a été trouvée par Jonas Toloza en 2007[1] qui a crée une seconde série qui approxime π en utilisant une série de nombres particulière. La formule est la suivante :

Formule de Toloza

Ici on ne divise pas 1 par des nombres impairs, mais par une série de nombres (1,3,5,10,15,21...) qui se trouvent être ceux composant la troisième "diagonale" du triangle de Pascal. C'est là où ça devient amusant. Les gens se sont alors mis à chercher si il était possible d'utiliser les nombres issus des diagonales du triangle de Pascal pour créer ces séries.


A ce stade, on commence donc à voir où cet article veut en venir.

La formule de Hardisky


Plus récemment, en 2017, Hardisky[2] a trouvé aussi une suite utilisant un élément sur deux mais cette fois-ci dans la quatrième diagonale du triangle de Pascal. La formule étant la suivante :
Formule d'Hardisky




La démonstration des formules de Hardisky et Toloza se basent toutes les deux sur une transformation de la série de Nilakantha Somayaji (1444-1544, oui, c'est pas récent), mathématicien indien qui développa la série suivante :



Ces séries numériques ont vu leur convergence prouvée (oui, le but n'est pas juste de trouver une série qui semble tendre vers π, il faut aussi le prouver) Il existe aussi des formules pour les deux autres diagonales suivantes, elles se sont pas formellement prouvées mais c'est surtout parce qu'au final chaque diagonale possède cette propriété :







On constate ainsi que pour les séries utilisant les chiffres des "diagonales" paires (celles de Leibniz, Hardisky et pour la 6ème rangée) on utilise uniquement une valeur sur 2 et en alternant les signes + et -. Pour les diagonales "impaires", il semble qu'on utilise toutes les valeurs de la diagonale mais en faisant des paires d'additions et de soustractions.

Vitesse de convergence

 

Ces séries convergeant toutes vers π, il peut être interessant de voir si leur vitesse de convergence est très différente. Pour cela nous pouvons calculer les 100 premières valeurs pour chacune des formules et évaluer à chaque fois l'écart (en valeur absolue) entre la valeur obtenue et π. On cherche donc à obtenir une valeur qui se rapproche rapidement de 0.


Le graphique ci-dessus (avec l'axe des ordonnées exprimé en valeur logarithmique) montre que la méthode de Leibniz est bien celle qui converge le moins rapidement puisqu'en utilisant les 100 première valeurs on tombe péniblement à un écart de 0.01 avec π. Alors que plus les séries sont "évoluées" plus cette convergence est rapide.
Avec la formule de Toloza et celle pour la cinquième diagonale on observe des oscillations. Cela s'explique par le fait que la série n'alterne pas pour chaque terme addition et soustraction (comme c'est le cas pour les séries des diagonales paires), mais qu'elle fait des paires d'additions et des paires de soustractions, cela implique donc qu'on s'éloigne deux fois de suite de la vraie valeur puis on s'en rapproche deux fois de suite, ce qui lui donne cet aspect oscillatoire mais ne l'empêche pas néanmoins de converger vers la solution.
En calculant l'estimation par la méthode de Hardisky pour les 100 premières valeurs on obtient 3.1415924, on est donc correct pour les 6 premières décimales (d'où une erreur à 10e-6). Pour la version la plus aboutie on atteint 10 décimales exactes à l'issue des 100 premières itérations.

Conclusion

A notre époque, il existe des séries bien plus efficaces puisque chaque itération améliore la précision de plusieurs décimales à chaque itération (un des algorithme le plus utilisé trouve 8 décimales supplémentaires par itérations). L’intérêt réside donc plutôt dans la découverte de cette relation entre π et le triangle de Pascal qui n'ont a priori aucun rapport. Vous avez pu constater que les preuves "officielles" sont très récentes mais il semble très probable que ces propriétés soient connues depuis plusieurs siècles. Il est probable que personne ne s'est réellement embeté à le démontrer puisque l’intérêt est assez faible.

Votre conduite influence-t-elle les autres conducteurs?

Manipulation mentale et conduite en voiture

La question traitée dans cet article est de savoir si la manière dont un conducteur se comporte sur la route peut avoir une influence positive (ou négative) sur les conducteurs de véhicules qui l'entourent. Pour vérifier cela, il faut mettre en place une expérience simple dont les effets sont quantifiables. Le fait de "bien" conduire étant un domaine très vaste, nous allons regarder quelque chose de plus basique et de plus facilement quantifiable : le fait d'utiliser ou non son clignotant à une intersection.

Le question est donc de savoir si il est possible d'influencer les gens afin qu'ils utilisent (ou non) leur clignotant lorsqu'ils tournent à un carrefour.

Matériel

 

Pour réaliser cette expérience il faut une voiture équipée d'un clignotant et un carrefour. Comme nous allons tester si le fait que l'expérimentateur utilise son clignotant influence les conducteurs autour de lui, il est nécessaire de prendre un carrefour un peu particulier. En effet, si on choisit une intersection complexe et un peu dangereuse, il est possible que par défaut 99% des usagers de la route utilisent déjà leur clignotant. Il sera alors plus difficile d'évaluer l'impact positif de notre comportement si il faut mesurer une variation très faible de ce pourcentage (il est difficile de prouver qu'il y a une influence significative si vous arrivez à faire passer le pourcentage de gens mettant leur clignotant de 99% à 99.5%, cela nécessite plusieurs milliers d'observations).


La solution consiste donc à choisir une intersection où peu de gens utilisent leur clignotant pour tourner (dans l'idéal autour de 50%). Une telle intersection existe et ça tombe bien, elle est sur le trajet que j'emprunte chaque matin pour aller au travail. C'est d'ailleurs cette intersection qui m'a donné l'idée de l'étude puisqu'il m'arrivait parfois d'y oublier de mettre mon clignotant mais en voyant le véhicule me précédant l'utiliser, cela me rappelait que je l'avais oublié. 

Voici la raison pour laquelle peu de personnes utilisent leur clignotant pour tourner à ce carrefour précis : ce carrefour est équipé de feu tricolore à chacune de ses voies et possède la particularité d'être un carrefour à 3 voies (et non pas 4 comme la plupart du temps). De plus, le matin, la grande majorité des gens suivent la route principale qui se dirige vers la grande ville, ce qui implique que le fait de mettre son clignotant semble superflu.


En effet, lorsque les deux voies parallèles sont au vert (Cas 1), la troisième voie est au rouge (logique) mais lorsque la voie unique passe au vert, deux phénomènes se produisent (Cas 2 ) :
- C'est la seule voie dont les véhicules se déplacent (donc utiliser son clignotant sert uniquement a prévenir les véhicules qui vous suivent)
- Tout le monde tourne à gauche le matin en direction de la grande ville toute proche (alors que la route à droite ne mène qu'à quelques bourgs proches). Une estimation empirique liée à mes observations indique qu'à l'heure de pointe du matin au moins 95% des véhicules de cette voie tournent à gauche. Votre clignotant n'est donc utile que pour le véhicule qui vous suit (puisque toutes les autres voies sont à l'arrêt) et il existe de forte chance pour que vous suiviez la même direction que tout le monde. Il n'est donc pas étonnant que les conducteurs ne ressentent pas forcément tout le temps le besoin de prévenir de leur action.


Méthode

Pour quantifier cette influence il suffit donc, chaque matin et de manière aléatoire (oui, il s'agit d'une expérience randomisée, n'en déplaise au Professeur Raoult) d'actionner ou non mon clignotant et de constater si le véhicule qui me suis (et qui a donc une bonne visibilité sur mes clignotants arrière) l'actionne lui aussi. 

Un test de puissance a été réalisé pour estimer le nombre d'observations nécessaires pour mettre en évidence une différence de proportion de 15 points. Les deux proportions a comparer étant :
- Le taux de personnes qui me suivent et mettant leur clignotant quand je le met aussi.
- Le taux de personnes qui met suivent et mettant leur clignotant alors que je ne l'ai pas activé.

Pour un risque alpha à 10% on tombe environ à 100 observations pour chacun de ces groupes. Il fallait donc 200 observations. Sachant que je n'avais qu'une observation par jour, cela implique que cette expérience allait durer au moins 200 jours. Au final elle a duré plus d'un an et demi. Évidemment il n'y avait pas d'observations le week-end mais j'ai aussi décidé d'éliminer les fois où le véhicule qui me suivait était un véhicule professionnel (bus, camion, ...) ainsi que les rares fois où le véhicule tournait à droite mais c'est surtout l'immense nombre de fois où j'oubliais de regarder ce qu'avait fait le véhicule derrière parce que j'avais la tête ailleurs qui a rallongé la durée de cette expérience (que celui qui n'a jamais eu l'esprit ailleurs en allant au boulot me jette la première pierre). Ce fut donc une expérience de longue haleine.

Résultats

Sans plus attendre, les résultats :

Le véhicule derrière moi
n'actionne pas son clignotant
Le véhicule derrière moi
actionne son clignotant
Je n'actionne pas mon clignotant5248
J'actionne mon clignotant3664


Ainsi, quand je ne met pas mon clignotant, la personne qui me suit n'actionne le sien que dans 48% des cas alors que quand je met mon clignotant, la personne qui me suit l'actionne 64% du temps. Il y a donc une différence de 16 points. Le test statistique de comparaison de deux moyennes indique, dans notre cas, une p-value à 0.011 ce qui semble donc confirmer qu'il y a bien eu une influence significative de mon comportement sur les actions des véhicules derrière moi.

Il reste encore des récalcitrants mais mon action a permis d'influencer (environ) 30% des personnes qui ne mettaient pas leur clignotant (52-36)/52.

Conclusion

Cette étude montre qu'il est possible que notre comportement positif ait un impact sur les conducteurs qui nous entourent et que dans ce cas précis, on parvient même a faire changer le comportement "négatif" de 30% d'entre eux. Évidemment nous nous sommes mis dans un cas idéal, grâce à une intersection au profil particulier. Dans le cas plus classique d'une intersection où 90% des gens mettraient déjà leur clignotant pour tourner, votre attitude positif ne parviendrait à faire monter ce taux qu'à 93%, donc un gain minime de 3%. Mais cela permet néanmoins de prouver que si vous conduisez bien, vous aiderez les autres à bien conduire aussi.

Voyager en ligne droite


Le tour du monde c'est un peu le rêve de tout grand voyageur. Certains aiment agrémenter ce voyage d'un petit défi (passer par chaque continent, le faire dans l'ordre alphabétique...) Dans notre cas, on va tenter de faire le tour du monde en ligne droite.

Ainsi, la question que vous ne vous posez pas mais à laquelle je vais répondre est de savoir quelle est le plus grand nombre de pays que vous pouvez traverser en suivant une ligne droite (tout d'abord en suivant un méridien ou un parallèle). Pour résoudre ce problème, rien de plus facile, il suffit de tester tous les chemins possibles.

En suivant un parallèle :

 

On commence donc par le sud et l'Antarctique et on remonte vers le nord par pas de 0.25° (On ne teste donc pas forcement toutes les valeurs possibles). La zone la plus densément fournie en pays à traverser se situe à 11° nord.

Elle comprend 26 pays répartis sur 3 continents :
- En Amérique centrale : le Costa Rica, le Nicaragua, la Colombie et le Venezuela. 
- En Afrique : la Guinée-Bissau, la Guinée, le Mali, le Burkina-Faso, le Ghana, le Togo, le Bénin, le Nigeria, le Cameroun, le Tchad, la République Centrafricaine, le Soudan, le Sud Soudan, l’Éthiopie, Djibouti, la Somalie et le Somaliland.
- En Asie : l'Inde, le Myanmar, la Thaïlande, le Cambodge et le Vietnam.
      
Attention cependant, on notera qu'il y a un biais dans cette méthode puisque la longueur de chaque parallèle varie en fonction de la latitude. Au niveau de l'équateur cela représente une ligne de 40 000 km alors qu'au niveau du 45ème parallèle (au niveau de la France) cette ligne n'est plus que de 28 300 km. Il est donc plus difficile de traverser le même nombre de pays. On peut donc essayer de normaliser le nombre de pays traversés en fonction de la longueur du parallèle. La bonne nouvelle concernant cette méthode alambiquée est que le résultat final ne change rien, c'est toujours au niveau du 11ème parallèle que se trouve la plus forte densité de pays traversés. Ce résultat est résumé dans le graphique qui suit.


En suivant un méridien :



Cette fois-ci, on trace un trait vertical et on regarde le nombre de pays traversés. Dans cette version il n'y a pas de souci de différence de longueur car chaque méridien fait 20 000 km.
Le résultat maximum passe là aussi par l'Afrique et se situe au niveau du 22° est.
La liste comprend 22 pays répartis de la manière suivante en partant du sud au nord. On commence évidemment par l'Antarctique puis ensuite :
En Afrique : l'Afrique du Sud, le Botswana, la Namibie, la Zambie, la République démocratique du Congo, la République Centrafricaine, le Soudan, le Tchad, la Libye.
En Europe : La Grèce, la Macédoine, la Serbie, la Roumanie, La Hongrie, la Slovaquie, la Pologne, la Lituanie, la Lettonie, la Finlande, la Suède et la Norvège.

Là aussi il y a un biais, le fait de suivre un méridien du pôle sud au pôle nord ne constitue pas un tour du monde complet, on a effectué seulement la moitié du chemin. Il faut donc en fait redescendre de "l'autre côté" ce qui n'est pas forcement facile à représenter sur un plan en 2 dimensions. La "vraie solution" est donc plutôt la suivante :


Le résultat maximal reste malgré tout similaire, c'est en traversant l'Afrique que vous verrez le plus de pays. Il existe une alternative qui vous fait traverser pays en vous faisant passer par l'Amérique du Sud et une partie de l'Asie mais cela ne permet tout de même pas de rivaliser avec le trajet via l'Afrique et l'Europe et ses 24 pays traversés.

En allant tout droit mais en diagonale

Dans toute la partie qui suit, on testera différentes combinaisons de "droites" qui ne suivent plus les parallèles et les méridiens, on va donc voyager en diagonale. Comme il en existe une infinité, nous prendrons 720 points répartis le long de l’équateur (donc un point de départ tous les demi-degrés) et nous testerons un angle initial de départ allant de -180° a +180°. Pour chacune de ces combinaison "point de départ" et "angle de départ" nous regarderons combien de pays ont été traversés. (Ça fait quand même 260 000 combinaisons à tester). Il existe cependant différentes manières d'aller "tout droit".

1-Tout droit sur la carte

Vous prenez une carte, une règle et vous tracez un trait bien droit. Effectivement le résultat obtenu est une belle ligne droite mais elle n'a pas vraiment de sens d'un point de vue géographique car, au cas où vous ne sauriez pas, la Terre est une sphère et les cartes en 2D ne sont qu'une projection qui distordent la réalité. Selon la projection que vous utilisez, la ligne droite que vous tracerez n'aura pas la même signification.

Le résultat optimal pour cette technique est le suivant :



Cette trajectoire traverse 31 pays :
En Amérique : L’Équateur, la Colombie, le Pérou, le Brésil, le Venezuela, le Guyana, Le Suriname, la France (via la Guyane Française)
En Afrique : Le Sierra Leone, la Guinée, le Liberia, la Côte d'Ivoire, le Ghana, le Togo, le Bénin, le Nigeria, le Cameroun, le Tchad, la république Centrafricaine, Le soudan et le Soudan du sud, l’Éthiopie, l’Érythrée et au Moyen-Orient le Yémen.
En Asie : L'inde, Le Myanmar, la Thaïlande, le Laos, le Vietnam, la Chine et Taïwan.


2-En suivant toujours le même cap

Là ça devient un peu plus intéressant (et logique). Il s'agit de suivre toujours le même cap, c'est a dire toujours la même direction sur une boussole, comme pourraient le faire les marins. On pourrait se dire qu'en suivant cet angle constant on fera une vraie ligne droite. Et bien encore perdu. Cette courbe, nommée loxodromie (qui est donc la courbe coupant les méridiens avec un angle constant) définit une trajectoire qui peut s'apparenter à un tire-bouchon pour peu que l'angle choisit soit assez faible.



Alors évidemment, vous allez bien "tout droit" puisque vous garder le même cap, mais il est difficile de faire passer ça pour un tour du monde.


3-En faisant du vrai tout droit

Le chemin le plus court entre deux points sur une sphère, s'appelle l'orthodromie. Vue en 3D cela ressemble bien à une droite mais sur les cartes en 2D utilisant la projection de "Mercartor", ce chemin ressemblera à une courbe alors qu'une route loxodromique (voir partie précédente) apparaitra comme une droite puisque la projection de Mercator a la propriété de conserver les angles (mais ne conserve pas les distances). En revanche, dans une carte obtenue par projection gnomonique, c'est le contraire, les distances sont respectées et donc la route orthodromique apparaitra comme une droite. Cependant les projections gnomoniques ne conservent pas les angles. Il faut choisir ce que l'on veut.

Gnomonie. Loxodromie (bleu) Orthodromie (rouge)
Mercator. Loxodromie (bleu) Orthodromie (rouge)

 On peut aussi le représenter en 3D


Bref, pour en revenir à notre tour du monde en ligne droite. La solution la plus esthétique passe par 30 pays.



Cette trajectoire traverse ainsi par les pays suivants :

En Amérique du Sud : Bolivie, Pérou, Brésil, Suriname
En Europe : Portugal, Espagne, Italie, San Marin (bien joué les gars), Serbie, Croatie, Bosnie, Moldavie, Ukraine, Roumanie, Kazakhstan, Turkménistan, Afghanistan, Russie
En Asie : Le Bhoutan, le Cambodge, la Chine, l'Inde, l'Indonésie, le Laos, la Malaisie, le Myanmar, le Pakistan, la Thaïlande, le Vietnam
En Océanie : Australie, Nouvelle-Zélande

Il y a peut-être de petites iles qui arrivent à s'intercaler aussi, mais globalement, vous voyez l'idée. Cela constitue un tour du monde plutôt sympathique qui passe par des pays très variés, merci d'envoyer les photos quand vous l'aurez fini.





Comment battre votre neveu a Qui-est-ce?

Jusqu'à 90% de victoire au Qui-est-ce!

Du haut de son arrogance il vous toise, le jeune freluquet. C'est à vous de lui montrer qui est le patron.




Tout le monde connait ce jeu pour enfant, où l'on doit deviner le personnage pioché par son adversaire en posant un minimum de questions. Les questions portent sur les caractéristiques physiques partagées par certains des personnages. On procède donc par élimination afin qu'il n'en reste plus qu'un qui corresponde à tous les critères. Dans le reste de cet article, nous nous baserons sur la version "historique" du jeu, il existe différentes versions avec des personnages aux physiques différents. Les concepts restent cependant les mêmes.

A noter que cette première partie d'article, concernant la méthode optimale pour gagner à "qui-est-ce ?" est très largement inspirée de l'épisode réalisé par le youtubeur Mark Rober (vidéo en anglais ici).

Méthode 0 : On élimine 1 par 1 chaque personnage.

Il ne s'agit pas vraiment d'une méthode à proprement parler puisque personne ne joue comme ça mais il est possible de poser, à chaque tour, une question qui permet d'éliminer un seul personnage. Par exemple "Est-ce que ton personnage est Anita ?". Sachant qu'il y a 24 personnages sur le plateau de jeu, cette méthode peut vous permettre de gagner en un coup (si effectivement le personnage à trouver est Anita, ce qui arrivera 1 fois sur 24) mais il est aussi possible, dans le pire des cas de ne gagner qu'en 24 coups, le personnage à trouver étant le dernier que vous proposerez.
Si vous connaissez un peu les probabilités, vous aurez reconnu un cas de tirage sans remise où la probabilité de succès est de 1/24. Avec cette méthode vous avez 1 chance sur 24 de finir en 1 coup, 1 chance sur 24 de finir en deux coups, etc ...
En moyenne vous terminerez donc la partie en 12.5 coups (on parle d'une espérance de 12.5). Il s'agit de la méthode la moins optimale possible, mais qui nous sert de référence afin d'évaluer les futures améliorations.

Espérance de la méthode 0 : 12.5

Méthodes avancées

Pour les méthodes plus avancées, il va falloir poser des questions sur le physique des personnages sachant que dans le jeu de "qui est ce", chaque attribut physique est partagé par 5 personnages au plus. Il y a 5 roux, 5 blonds, 5 personnes au cheveux noirs, 5 chauves, 5 femmes, 5 personnes aux yeux bleus, 5 moustachus, 5 avec chapeaux, 5 avec lunettes, 5 avec un gros nez et 5 avec les joues roses.
Il existe seulement deux exceptions à cette règle : il y a uniquement 4 personnes avec les cheveux marron (forcément il faut bien réussir à tomber sur un total de 24 pour ce qui est de la couleur des cheveux) et 4 personnes seulement avec une barbe (pour une raison que j'ignore). On peut donc générer le tableau des caractéristiques de chaque personnage.

NomCheveuxFemmeYeux BleusMoustacheBarbeChapeauLunettesCalvitieGros NezGrosses LèvresJoues Roses
ALEXNOIRNONNONOUINONNONNONNONNONOUINON
ALFREDROUXNONOUIOUINONNONNONNONNONNONNON
ANITABLONDOUIOUINONNONNONNONNONNONNONOUI
ANNENOIROUINONNONNONNONNONNONNONNONNON
BERNARDMARRONNONNONNONNONOUINONNONOUINONNON
BILLROUXNONNONNONOUINONNONOUINONNONOUI
CHARLESBLONDNONNONOUINONNONNONNONNONOUINON
CLAIREROUXOUINONNONNONOUIOUINONNONNONNON
DAVIDBLONDNONNONNONOUINONNONNONNONNONNON
ERICBLONDNONNONNONNONOUINONNONNONNONNON
FRANSROUXNONNONNONNONNONNONNONNONNONNON
GEORGEBLANCNONNONNONNONOUINONNONNONNONNON
HERMANROUXNONNONNONNONNONNONOUIOUINONNON
JOEBLONDNONNONNONNONNONOUINONNONNONNON
MARIAMARRONOUINONNONNONOUINONNONNONNONNON
MAXNOIRNONNONOUINONNONNONNONOUIOUINON
PAULBLANCNONNONNONNONNONOUINONNONNONNON
PETERBLANCNONOUINONNONNONNONNONOUIOUIOUI
PHILIPNOIRNONNONNONOUINONNONNONNONNONNON
RICHARDMARRONNONNONOUIOUINONNONOUINONNONNON
ROBERTMARRONNONOUINONNONNONNONNONOUINONOUI
SAMBLANCNONNONNONNONNONOUIOUINONNONNON
SUSANBLANCOUINONNONNONNONNONNONNONOUIOUI
TOMNOIRNONOUINONNONNONOUIOUINONNONNON

Nous disposons ainsi d'une série de questions permettant de discriminer les personnages. On peut d'ailleurs en profiter pour se rendre compte que certains couples de personnages possèdent très peu de différences (comme Alex et Max, qui ne diffèrent que par la taille de leur nez ou Paul et Sam qui ont juste une différence de calvitie) ou au contraire, des paires de personnages ayant jusqu'à 9 différences. 

Il est bien évidemment possible de trouver des questions plus spécifiques pour caractériser les personnages (la forme du visage, type de cheveux...)  mais elles n'apportent pas grand-chose car elles sont moins discriminantes.

Méthode 1 : On pose des questions au hasard parmi les personnages restants sans se soucier du nombre que l'on va éliminer.

C'est la méthode de base, utilisée par les enfants. On regarde les personnages restants et on pose une question en fonction des attributs physiques de ceux-ci. Il peut arriver que de telles questions n'éliminent qu'un ou deux personnages. C'est donc une méthode un peu meilleure que la première car elle permet parfois d'éliminer plusieurs personnages à la fois mais le nombre de personnages éliminés n'est pas forcement optimisé par le joueur.

Pour tester l'efficacité de cette méthode (qui possède une part d'aléatoire), le plus simple est de créer un algorithme qui simule des parties et de voir en combien de coup il est possible de trouver la réponse.
Le petit bout de code qui suit (en R) permet de générer 10 000 parties (il n'est pas forcement hyper optimisé mais cela tourne en une poignée de secondes)



# Methode 1 : Question restante random
COUNT = c()
for (K in 1:10000) { # Nombre de parties
  print(sprintf("K=%i",K))
  listInd <- rownames(Data) # Liste des personnages
  Question <- colnames(Data)# Liste des questions possibles
  Reponse <- sample(listInd, size = 1) # On pioche un personnage au hasard
  count <- 0 # On initialise le nombre de tours joués
  print(Reponse)
  # Tant qu'il reste plus d'un individu on continue
  while (length(listInd) > 1) { 
    question = sample(Question, size=1) # On pioche une question au hasard
    vecq = Data[listInd, question] # On regarde les valeurs pour chacun des individus restants
    # Si c'est une question inutile (qui ne discrimine rien)
    if (length(unique(vecq)) < 2) { 
      # On la supprime des questions restant a poser
      Question <- Question[!Question %in% question] 
      next # On recommence la boucle sans incrementer le nombre de coups
    }
    count = count + 1
    # On conserve les individus qui sont dans la meme categorie que l'individu a deviner
    val = Data[Reponse, question] # reponse pour l'individu a trouver
    # On met a jour la liste des individus non eliminés
    listInd = rownames(Data[listInd,])[Data[listInd, question] == val] 
    # On met a jour la liste des questions restantes
    Question <- Question[!Question %in% question] 
    print(sprintf("count = %i - question = %s - value = %s - nbInd = %i - nbQuestion = %i",count,question,val, length(listInd), length(Question)))
  }
  COUNT[K]=count
} 

La répartition du nombre de coups est donc la suivante :


Nombre de coups23456789101112
Fréquence d'apparition (%)2.839.2218.621.416.212.210.26.592.430.390.02

On constate alors que le nombre de coups nécessaires pour trouver la solution varie de 2 questions à 12 questions. La moyenne du nombre de questions à poser (l'espérance) se situe autour de 5.6 questions. C'est quand même déjà mieux. Il est à noter que cela ne garantit pas forcément de gagner à chaque fois contre un adversaire qui utilise la méthode 0 (par exemple il peut toujours continuer de gagner en 1 tour alors qu'avec cette méthode c'est impossible) mais en moyenne vous gagnerez 76% du temps, votre adversaire gagnera 19% du temps et vous ferez un match nul 5% du temps. Vous gagnez donc 4 fois plus fréquemment que votre adversaire.

Espérance de la méthode 1 : 5.6

Méthode 2 : On pose une question simple pour essayer d'éliminer le plus de personnes restantes d'un coup.

Nous avons vu que chaque caractéristique physique ne concerne que 5 personnes à la fois. Dans la méthode 2 le choix de la question à poser n'est plus aléatoire mais elle cherche à optimiser la question à poser pour discriminer au mieux les individus restants. Par exemple s'il reste 10 personnages dont 5 roux (et donc 5 non-roux) et 2 avec lunettes (et donc 8 sans lunettes), la question posée sera obligatoirement celle permettant de savoir si le personnage à trouver est roux (et qui éliminera forcément 5 personnes peu importe la réponse) alors que dans la méthode 1 cela aurait aussi pu être la question concernant les lunettes (qui est moins optimale car en moyenne elle élimine 3.6 personnages) puisque la méthode 1 choisit au hasard les questions à poser.

On modifie donc le code et on relance pour 10 000 parties.


# Methode 2 : Question restante qui maximise la discrimination
COUNT2 = c()
sink("Out2.txt", append = FALSE)
for (K in 1:10000) {
  print(sprintf("K=%i",K))
  listInd <- rownames(Data)
  Question <- colnames(Data)
  Reponse <- sample(listInd, size = 1)
  count <- 0
  print(Reponse)
  while (length(listInd) > 1) {
    # On choisit la question qui segmente le mieux parmi toutes les questions restantes
    # On regarde le ratio TRUE FALSE le plus proche de 0.5
    ratio = apply(Data[listInd, Question], 2, function(x) { sum(x) / length(x) })
    # On sous selectionne l'ensemble des questions les plus proches de 0.5
    # Il peut y en avoir plusieurs exaequo donc on en prend une au hasard
    DIFF = abs(ratio - .5)
    BonnesQuestions = Question[DIFF==min(DIFF)]
    question = sample(BonnesQuestions, size = 1)
    vecq = Data[listInd, question]
    if (length(unique(vecq)) < 2) { #question inutile
      Question <- Question[!Question %in% question]
      next
    }
    count = count + 1
    # On conserve les individus qui sont dans la meme categorie que l'individu a deviner
    val = Data[Reponse, question]
    listInd = rownames(Data[listInd,])[Data[listInd, question] == val]
    Question <- Question[!Question %in% question]
    print(sprintf("count = %i - question = %s - value = %s - nbInd = %i - nbQuestion = %i",count,question,val, length(listInd), length(Question)))
  }
  COUNT2[K]=count
}

La répartition du nombre de coups est donc la suivante :


Nombre de coups2345678
Fréquence d'apparition (%)0.3812.120.123.828.814.50.75

On constate qu'avec cette méthode, on trouve forcément la solution en 8 coups ou moins et la moyenne du nombre de coups nécessaires pour trouver la solution est de 5.1. La différence ne semble pas énorme par rapport à la méthode 1 mais elle permet de gagner 48% du temps, de faire match nul 16% du temps et de perdre 35% du temps. La méthode 2 permet donc de gagner 1.36 fois plus de parties (vous gagnez 4 parties quand votre adversaire en gagne 3) c'est toujours ça de pris.


Espérance de la méthode 2 : 5.1

Méthode 3 : On pose une question multiple qui permet de diviser par 2 le nombre de personnages restants.

Alors là, je sais d'avance que je vais en entendre râler certains, mais la règle (écrite dans la boite de jeu) stipule que chaque joueur doit, lors de son tour, poser UNE question à laquelle l'autre joueur doit répondre par oui ou non. Cette question peut donc porter sur plus d'un attribut physique à la fois. C'est là le secret de cette méthode. Par exemple, si, au premier tour, vous posez la question : "Ton personnage est-il blond ?" alors vous éliminerez 5 personnes 79% du temps ce qui n'est pas exceptionnel (et 21% du temps vous éliminerez 19 personnes). Cette question a donc une espérance de 7.94, c'est à dire qu'en moyenne elle vous permet d'éliminer environ 8 personnages.

En revanche, si votre première question est plutôt "Ton personnage est-il blond ou roux ?" vous éliminerez 10 personnes si la réponse est non (58% du temps) et 14 si la réponse est oui (42% du temps). Cette question a donc une espérance de 11.7, c'est à dire qu'en moyenne vous éliminez 11.7 personnes. Cela semble quand même bien plus intéressant pour réduire la liste des suspects. Vous pouvez même optimiser le système en posant la question suivante : "Ton personnage est-il blond ou roux ou a des moustaches ?" Dans ce cas-là, peu importe la réponse, vous éliminerez exactement 12 personnages, divisant donc parfaitement par deux le nombre de personnages restant à trouver. Au premier tour il existe 7 combinaisons de 3 questions permettant de séparer le 2 groupes de 12 les personnages.

Faisons un petit point dans cette explication pour préciser que le "ou" utilisé dans cette méthode est un "ou inclusif" (appelé OR par les informaticiens, électroniciens...) et non pas le "ou exclusif" (nommé XOR).

Dans le cas du "ou inclusif", si le personnage est roux ET a des moustaches on répondra OUI (et c'est bien dans ce sens que la question est posée : "A-t-il au moins un de ces attributs physiques ?") alors que dans le cas du "ou exclusif" on répondra NON car la question posée est alors "A-t-il exactement un de ces attributs physique ?"

Avec cette méthode (et à condition de choisir les bonnes questions à poser), il reste forcément 12 personnages à la fin du premier tour, 6 personnages à la fin du deuxième tour, 3 à la fin du troisième tour et au quatrième tour, il reste 1 ou 2 personnages encore présents. Il vous faudra donc poser une 5ème question 66% de temps pour finalement trouver la solution. 33% du temps vous trouverez en 4 coups et 66% du temps en 5 coups. Il n'est pas forcement nécessaire de faire des simulations (bon je l'ai fait quand même et je tombe sur 33.8 et 66.2, ce qui prouve que les simulations sont correctes) et l'on peut déterminer que la répartition de la méthode 3 est :


Nombre de coups45
Fréquence d'apparition (%)33.366.6


La moyenne du nombre de coups nécessaires pour trouver la solution est donc de 4.66 c'est encore un petit peu mieux que la méthode 2.

Mais cela signifie que si vous jouez contre un adversaire utilisant la méthode 2 vous gagnerez 51% du temps, vous ferez match nul 22% du temps et perdrez 26% du temps. Vous gagnez donc 2 fois plus souvent que votre adversaire (vous gagnez 2 parties sur 3). La différence est très importante. Cela peut paraitre surprenant car la différence d'espérance est relativement faible, mais la méthode 3 permet surtout de réduire la variabilité. Avec la méthode 3 il n'est pas possible d'avoir besoin de plus de 5 coups alors qu'avec la méthode 2 cela arrive 44% du temps. Cela signifie que toutes les fois où l'adversaire aura besoin de plus de 5 coups vous êtes certain de gagner. Les seuls moments où votre adversaire est certain de gagner c'est quand il a besoin de moins de 4 coups, mais cela n'arrive que 12% du temps.

Et si vous jouez contre un adversaire utilisant la méthode 1, c'est un peu mieux : vous gagnez 55% du temps, match nul 20% du temps et perdez 24% du temps. Vous gagnez donc 2.26 fois plus souvent que votre adversaire (vous gagnez 7 parties sur 10)

Espérance de la méthode 3 : 4.7

Remarques complémentaires

Dans la vidéo de Mark Rober, citée en exemple, il semble qu'il considère que les adversaires utilisent la méthode 1, ce que je trouve un peu péjoratif car elle est quand même extrêmement basique. Il faut aussi considérer une différence dans les chiffres qu'il trouve. Les valeurs du nombre de coups est toujours surévalué d'une unité car il utilise la vraie règle qui stipule que si on a éliminé tous les personnages sauf 1 il faut attendre le tour suivant pour le dire (ce qui n'a pas d'utilité sauf si on considère que cela laisse la possibilité à l'adversaire de deviner au hasard parmi ses personnages restants, mais ce n'est pas un cas qui est abordé dans cette étude de toute façon). L'autre point de désaccord concerne les résultats. Dans la vidéo, l'auteur explique que la méthode 3 permet de gagner 80% des matchs contre un adversaire utilisant la méthode 1, dans mes calculs je trouve plutôt 70% de victoire.

Conclusion

Dans le titre il est annoncé qu'on peut atteindre 90% de victoire. Cela est en effet vrai puisque si vous avez remarqué, le plateau de qui est ce vous permet de compter les points. Le total allant jusqu'à 5, on peut considerer que le vainqueur sera le premier arrivé a 5 victoires. Ainsi, si vous jouez contre un adversaire utilisant la méthode 2 vous avez 85% d'être le premier à finir avec 5 victoires et si vous jouez contre un adversaire utilisant la méthode 1, vous avez 90% de chances d'atteindre le premier les cinq points.