Mon projet Python par Evan

La coquille saint-Evan

Ce projet réalisé par Evan, élève de 3ème au collège C Peguy d’Arras a été réalisé dans le cadre d’une formation en programmation (algorithme)

Au cycle 4, les élèves s’initient à la programmation, en développant dans une démarche de projet quelques programmes simples, sans viser une connaissance experte et exhaustive d’un langage ou d’un logiciel particulier. En créant un programme, ils développent des méthodes de programmation, revisitent les notions de variables et de fonctions sous une forme différente, et s’entraînent au raisonnement

Code Python traduit en HTML:
#Evan - 3D - 2018
#Programme qui trace deux cercles contenant des couleurs aléatoires

from turtle import *
from random import choice

#reglages turtle
speed('fastest')
bgcolor('black')
couleurs = ['blue','red','green','yellow','brown','black','white','pink',
            'orange','purple','grey'] #Couleurs disponibles aléatoirement

#corps du programme
for i in range(400) :
    color(choice(couleurs)) #choix d'une couleur 
    circle(200-i) #On trace le cercle de rayon qui se décrémente à chaque tour

input() #pour éviter la fermeture du programme (Windows en mode console)

Mes commentaires

Le visuel me plaît beaucoup. La pertinence des commentaires est agréable. Mon seul bémol concerne le rapport entre la taille de la fenêtre et la taille effective du rendu. Une recherche t’aurait permis de paramétrer une fenêtre plus grande… (Ou éventuellement de diminuer les rayons des cercles).

Une remarque pour terminer : Dans ta boucle, quand i est supérieur à 200, les cercles ont un rayon négatif… Cela n’existe pas, pourtant pour Turtle si ! C’est curieux, non ?

Un mot un jour : Putet

SUPPLÉMENT AU DICTIONNAIRE

PUTET [pu-tè] s. m.

♦ En plusieurs provinces, petite mare formée par le liquide écoulé du fumier, Gloss. aunisien, p. 138, et DELBOULLE, Gloss. de la vallée d’Yères, p. 270

Dans d’autres parties de la Normandie, on dit putel.

ÉTYMOLOGIE

Autre forme de l’anc. franç. putel, fumier, bourbe, du lat. putere, puer.

Attention : ce mot n’est pas reconnu par l’ODS7

TOP mots trouvés : peut (6 points) pute (6 points) peu (5 points)

Voir aussi :

Mon projet Python, par Malo


Deux tortues et beaucoup de hasard par Malo

Ce projet réalisé par Malo, élève de 3ème au collège C Peguy d’Arras a été réalisé dans le cadre d’une formation en programmation (algorithme)

Au cycle 4, les élèves s’initient à la programmation, en développant dans une démarche de projet quelques programmes simples, sans viser une connaissance experte et exhaustive d’un langage ou d’un logiciel particulier. En créant un programme, ils développent des méthodes de programmation, revisitent les notions de variables et de fonctions sous une forme différente, et s’entraînent au raisonnement

Code Python traduit en HTML:
#Malo Fournier 15/11/18
from turtle import *
from random import*


fred = Turtle()#nouvelle tortue

#l'épaisseur du trait
width(3)
fred.width(3)

#on change "l'apparence"  du personnage
shape("blank" )
fred.shape("blank" )

#on choisit des couleurs aléatoires
couleur=['snow', 'ghost white', 'white smoke', 'gainsboro', 'floral white', 'old lace',
    'linen', 'antique white', 'papaya whip', 'blanched almond', 'bisque', 'peach puff',
    'navajo white', 'lemon chiffon', 'mint cream', 'azure', 'alice blue', 'lavender',
    'lavender blush', 'misty rose', 'dark slate gray', 'dim gray', 'slate gray',
    'light slate gray', 'gray', 'light grey', 'midnight blue', 'navy', 'cornflower blue', 'dark slate blue',
    'slate blue', 'medium slate blue', 'light slate blue', 'medium blue', 'royal blue',  'blue',
    'dodger blue', 'deep sky blue', 'sky blue', 'light sky blue', 'steel blue', 'light steel blue',
    'light blue', 'powder blue', 'pale turquoise', 'dark turquoise', 'medium turquoise', 'turquoise',
    'cyan', 'light cyan', 'cadet blue', 'medium aquamarine', 'aquamarine', 'dark green', 'dark olive green',
    'dark sea green', 'sea green', 'medium sea green', 'light sea green', 'pale green', 'spring green',
    'lawn green', 'medium spring green', 'green yellow', 'lime green', 'yellow green',
    'forest green', 'olive drab', 'dark khaki', 'khaki', 'pale goldenrod', 'light goldenrod yellow',
    'light yellow', 'yellow', 'gold', 'light goldenrod', 'goldenrod', 'dark goldenrod', 'rosy brown',
    'indian red', 'saddle brown', 'sandy brown',
    'dark salmon', 'salmon', 'light salmon', 'orange', 'dark orange',
    'coral', 'light coral', 'tomato', 'orange red', 'red', 'hot pink', 'deep pink', 'pink', 'light pink',
    'pale violet red', 'maroon', 'medium violet red', 'violet red',
    'medium orchid', 'dark orchid', 'dark violet', 'blue violet', 'purple', 'medium purple',
    'thistle', 'snow2', 'snow3',
    'snow4', 'seashell2', 'seashell3', 'seashell4', 'AntiqueWhite1', 'AntiqueWhite2',
    'AntiqueWhite3', 'AntiqueWhite4', 'bisque2', 'bisque3', 'bisque4', 'PeachPuff2',
    'PeachPuff3', 'PeachPuff4', 'NavajoWhite2', 'NavajoWhite3', 'NavajoWhite4',
    'LemonChiffon2', 'LemonChiffon3', 'LemonChiffon4', 'cornsilk2', 'cornsilk3',
    'cornsilk4', 'ivory2', 'ivory3', 'ivory4', 'honeydew2', 'honeydew3', 'honeydew4',
    'LavenderBlush2', 'LavenderBlush3', 'LavenderBlush4', 'MistyRose2', 'MistyRose3',
    'MistyRose4', 'azure2', 'azure3', 'azure4', 'SlateBlue1', 'SlateBlue2', 'SlateBlue3',
    'SlateBlue4', 'RoyalBlue1', 'RoyalBlue2', 'RoyalBlue3', 'RoyalBlue4', 'blue2', 'blue4',
    'DodgerBlue2', 'DodgerBlue3', 'DodgerBlue4', 'SteelBlue1', 'SteelBlue2',
    'SteelBlue3', 'SteelBlue4', 'DeepSkyBlue2', 'DeepSkyBlue3', 'DeepSkyBlue4',
    'SkyBlue1', 'SkyBlue2', 'SkyBlue3', 'SkyBlue4', 'LightSkyBlue1', 'LightSkyBlue2',
    'LightSkyBlue3', 'LightSkyBlue4', 'SlateGray1', 'SlateGray2', 'SlateGray3',
    'SlateGray4', 'LightSteelBlue1', 'LightSteelBlue2', 'LightSteelBlue3',
    'LightSteelBlue4', 'LightBlue1', 'LightBlue2', 'LightBlue3', 'LightBlue4',
    'LightCyan2', 'LightCyan3', 'LightCyan4', 'PaleTurquoise1', 'PaleTurquoise2',
    'PaleTurquoise3', 'PaleTurquoise4', 'CadetBlue1', 'CadetBlue2', 'CadetBlue3',
    'CadetBlue4', 'turquoise1', 'turquoise2', 'turquoise3', 'turquoise4', 'cyan2', 'cyan3',
    'cyan4', 'DarkSlateGray1', 'DarkSlateGray2', 'DarkSlateGray3', 'DarkSlateGray4',
    'aquamarine2', 'aquamarine4', 'DarkSeaGreen1', 'DarkSeaGreen2', 'DarkSeaGreen3',
    'DarkSeaGreen4', 'SeaGreen1', 'SeaGreen2', 'SeaGreen3', 'PaleGreen1', 'PaleGreen2',
    'PaleGreen3', 'PaleGreen4', 'SpringGreen2', 'SpringGreen3', 'SpringGreen4',
    'green2', 'green3', 'green4', 'chartreuse2', 'chartreuse3', 'chartreuse4',
    'OliveDrab1', 'OliveDrab2', 'OliveDrab4', 'DarkOliveGreen1', 'DarkOliveGreen2',
    'DarkOliveGreen3', 'DarkOliveGreen4', 'khaki1', 'khaki2', 'khaki3', 'khaki4',
    'LightGoldenrod1', 'LightGoldenrod2', 'LightGoldenrod3', 'LightGoldenrod4',
    'LightYellow2', 'LightYellow3', 'LightYellow4', 'yellow2', 'yellow3', 'yellow4',
    'gold2', 'gold3', 'gold4', 'goldenrod1', 'goldenrod2', 'goldenrod3', 'goldenrod4',
    'DarkGoldenrod1', 'DarkGoldenrod2', 'DarkGoldenrod3', 'DarkGoldenrod4',
    'RosyBrown1', 'RosyBrown2', 'RosyBrown3', 'RosyBrown4', 'IndianRed1', 'IndianRed2',
    'IndianRed3', 'IndianRed4', 'sienna1', 'sienna2', 'sienna3', 'sienna4', 'burlywood1',
    'burlywood2', 'burlywood3', 'burlywood4', 'wheat1', 'wheat2', 'wheat3', 'wheat4', 'tan1',
    'tan2', 'tan4', 'chocolate1', 'chocolate2', 'chocolate3', 'firebrick1', 'firebrick2',
    'firebrick3', 'firebrick4', 'brown1', 'brown2', 'brown3', 'brown4', 'salmon1', 'salmon2',
    'salmon3', 'salmon4', 'LightSalmon2', 'LightSalmon3', 'LightSalmon4', 'orange2',
    'orange3', 'orange4', 'DarkOrange1', 'DarkOrange2', 'DarkOrange3', 'DarkOrange4',
    'coral1', 'coral2', 'coral3', 'coral4', 'tomato2', 'tomato3', 'tomato4', 'OrangeRed2',
    'OrangeRed3', 'OrangeRed4', 'red2', 'red3', 'red4', 'DeepPink2', 'DeepPink3', 'DeepPink4',
    'HotPink1', 'HotPink2', 'HotPink3', 'HotPink4', 'pink1', 'pink2', 'pink3', 'pink4',
    'LightPink1', 'LightPink2', 'LightPink3', 'LightPink4', 'PaleVioletRed1',
    'PaleVioletRed2', 'PaleVioletRed3', 'PaleVioletRed4', 'maroon1', 'maroon2',
    'maroon3', 'maroon4', 'VioletRed1', 'VioletRed2', 'VioletRed3', 'VioletRed4',
    'magenta2', 'magenta3', 'magenta4', 'orchid1', 'orchid2', 'orchid3', 'orchid4', 'plum1',
    'plum2', 'plum3', 'plum4', 'MediumOrchid1', 'MediumOrchid2', 'MediumOrchid3',
    'MediumOrchid4', 'DarkOrchid1', 'DarkOrchid2', 'DarkOrchid3', 'DarkOrchid4',
    'purple1', 'purple2', 'purple3', 'purple4', 'MediumPurple1', 'MediumPurple2',
    'MediumPurple3', 'MediumPurple4', 'thistle1', 'thistle2', 'thistle3', 'thistle4',
    'gray1', 'gray2', 'gray3', 'gray4', 'gray5', 'gray6', 'gray7', 'gray8', 'gray9', 'gray10',
    'gray11', 'gray12', 'gray13', 'gray14', 'gray15', 'gray16', 'gray17', 'gray18', 'gray19',
    'gray20', 'gray21', 'gray22', 'gray23', 'gray24', 'gray25', 'gray26', 'gray27', 'gray28',
    'gray29', 'gray30', 'gray31', 'gray32', 'gray33', 'gray34', 'gray35', 'gray36', 'gray37',
    'gray38', 'gray39', 'gray40', 'gray42', 'gray43', 'gray44', 'gray45', 'gray46', 'gray47',
    'gray48', 'gray49', 'gray50', 'gray51', 'gray52', 'gray53', 'gray54', 'gray55', 'gray56',
    'gray57', 'gray58', 'gray59', 'gray60', 'gray61', 'gray62', 'gray63', 'gray64', 'gray65',
    'gray66', 'gray67', 'gray68', 'gray69', 'gray70', 'gray71', 'gray72', 'gray73', 'gray74',
    'gray75', 'gray76', 'gray77', 'gray78', 'gray79', 'gray80', 'gray81', 'gray82', 'gray83',
    'gray84', 'gray85', 'gray86', 'gray87', 'gray88', 'gray89', 'gray90', 'gray91', 'gray92',
    'gray93', 'gray94', 'gray95', 'gray97', 'gray98', 'gray99']








speed("fastest" )#vitesse

fred.forward(50)#on place fred
left(180)





#programme en lui même
for i in range(1000):

    bgcolor(choice(couleur))#choix du fond
    fred.forward(45+i)
    fred.color(choice(couleur))#on "invoque"  les couleurs aléatoire
    color(choice(couleur))#on "invoque"  les couleurs aléatoire
    fred.left(170-i)
    forward(45+i)
    left(170-i)

Mes commentaires

Trois choses sont particulièrement intéressantes dans ce code:

  • La liste des couleurs utilisables en Python avec Turtle
  • Le choix aléatoire de la couleur
  • La possibilité de piloter deux tortues

Je suis un peu plus réservé quant au résultat visuel… Même si le travail de recherche personnel (module random, deux turtles…) est excellent !

Un mot de temps en temps : Abluer

ABLUER [a-blu-é] v. a.

Terme technique. Laver, passer légèrement une liqueur préparée avec de la noix de galle sur du parchemin ou du papier, pour faire revivre l’écriture.

Attention ce verbe n’est pas accepté par l’ODS7

Voir aussi :

Mon projet Python par Nathan

Travail de Nathan

Ce projet réalisé par Nathan, élève de 3ème au collège C Peguy d’Arras a été réalisé dans le cadre d’une formation en programmation (algorithme)

Au cycle 4, les élèves s’initient à la programmation, en développant dans une démarche de projet quelques programmes simples, sans viser une connaissance experte et exhaustive d’un langage ou d’un logiciel particulier. En créant un programme, ils développent des méthodes de programmation, revisitent les notions de variables et de fonctions sous une forme différente, et s’entraînent au raisonnement

Code Python traduit en HTML:
# nathan m. 3B octogone
from turtle import *
speed("fastest" )
shape("blank" )#cela enlève le curseur
title("mon projet Nathan 3B" )
# une boucle de 500 itérations
for i in range(500):
    bgcolor("black" )
    color("pink" )# je change de couleur a chaque fois
    forward(500-i)
    right(190)
    color("blue" )
    forward(500-i)#on avance
    right(190)#on tourne a droite
    color("green" )
    forward(500-i)
    right(190)
    color("purple" )
    forward(500-i)
    right(190)
    color("red" )
    forward(500-i)
    right(190)
    color("yellow" )
    forward(500-i)
    right(190)
    color("white" )
    forward(500-i)
    right(190)
    color("orange" )
    forward(500-i)
    right(190)
    width(5) #on épaisie le trait 

Mes commentaires

Quand on débute dans un langage de programmation, commenter ses sources a une importance particulière : aider à mémoriser les instructions simples. Mais Python est tellement “lisible” que la plupart des commentaires sont ici inutiles. 

Le résultat est simple et joli, et je ne me suis posé qu’une question à la lecture du code : Pourquoi 500 itérations ?

Quand tu écris right(190) tu tournes à droite ???

Un lexique genre ODS7 en txt…

L’Officiel du Scrabble® est le dictionnaire officiel du jeu de Scrabble® francophone depuis le 1er janvier 1990. Il est édité par Larousse et est couramment appelé « ODS » par les scrabbleurs.

2016 voit l’entrée en vigueur de l’ODS7…

Sur le site de la fédération on peut lire :

Qui contacter pour distribuer/vendre un ouvrage ou autre produit utilisant la base de mots de l’Officiel du Scrabble® ?

Tout auteur souhaitant distribuer/vendre un ouvrage ou autre produit (hors application pour Smartphone), utilisant une base de mots conforme à l’Officiel du Scrabble®, doit remplir un contrat de partenariat qui lui sera envoyé sur demande faite auprès de la FISF, à l’adresse suivante : contact@fisf.net

Toute société souhaitant distribuer/vendre un produit numérique privé/grand public sécurisé du type application pour Smartphone, utilisant une base de mots conforme à l’ODS, doit contacter Jean-François Richez, responsable des licences numériques chez Larousse, à l’adresse suivante : JFRICHEZ@larousse.fr

Voilà, mais pour des besoins pédagogiques (formation algorithme au cycle 4) j’avais besoin d’une liste de mots en .txt

Remarque : Je dis bien liste de mots (et non dictionnaire). Et les mots sont à tout le monde…

En effet j’envisage de faire travailler des élèves de 4ème, 3ème sur le développement d’algorithmes divers ayant pour base des jeux de lettres :

  • Boggle
  • Scabble
  • Pendu
  • etc…

Après quelques recherches sur la toile, je me suis aperçu que le fichier txt que je cherchais n’existait pas. Mais que quelques sites proposaient des listes (en html multi-pages. )

Ainsi le très bon listesdemots.net vous propose de nombreuses liste de mots. (898 pages)

Il était donc possible mais fastidieux de créer un fichier txt en copiant collant toutes ces listes !

Pas si fastidieux si on a Python sous le coude !

#wouf 2018 (py3.6.4)
#http://site2wouf.fr
#Pour créer dico.txt
#Qui contient un lexique basé sur
#ODS7
#En scollant le site : listesdemots.net
#requis :l beautifulsoup4
#(cmd : pip install beautifulsoup4)

import requests
from bs4 import BeautifulSoup
fichier = open("dico.txt", "w")

#	Initialisation:
url="https://www.listesdemots.net/touslesmots"
requete = requests.get(str(url+".htm")) #page1
print(requete.url)
page = requete.content

soup = BeautifulSoup(page,features="html5lib")
span = soup.find("span", {"class": "mot"})
mots=span.string.strip()
lesmots=mots.split(" ")
for l in lesmots:
    fichier.write(l+"\n")
    print("|",end="")
print()
print("page 1 : OK ("+str(len(lesmots))+")")
totalmot=len(lesmots)
fichier.close()
#page 2 à 8998:
for i in range(2,899):
    fichier = open("dico.txt", "a")
    lurl=url+"page"+str(i)+".htm"
    ok=False
    while not ok:
        try:
            requete = requests.get(lurl,timeout=1)
            ok=True
        except:
            print("Problème de connexion. Je recommence !")
    print(requete.url)
    page = requete.content
    soup = BeautifulSoup(page,features="html5lib")
    span = soup.find("span", {"class": "mot"})
    mots=span.string.strip()
    lesmots=mots.split(" ")
    for l in lesmots:
        fichier.write(l+"\n")
        print("|",end="")
    totalmot+=len(lesmots)
    print()
    print("page "+str(i)+" : OK ("+str(len(lesmots))+"/"+str(totalmot)+")")
    fichier.close()
#fin du scipt:
 

print("mots :",totalmot)
    


Ce script produit en quelques minutes un fichier txt (avec un mot par ligne) contenant les 402 503 mots du site !

En cas de mauvaise connexion, pas de souci, le script gère ! Le temps de génération du fichier txt sera sensiblement plus long !

Enjoy !

Mon projet Python, par Nolan

Travail de Nolan

Ce projet réalisé par Nolan, élève de 3ème au collège C Peguy d’Arras a été réalisé dans le cadre d’une formation en programmation (algorithme)

Au cycle 4, les élèves s’initient à la programmation, en développant dans une démarche de projet quelques programmes simples, sans viser une connaissance experte et exhaustive d’un langage ou d’un logiciel particulier. En créant un programme, ils développent des méthodes de programmation, revisitent les notions de variables et de fonctions sous une forme différente, et s’entraînent au raisonnement

Code Python traduit en HTML:
#Nolan L. 3B
from turtle import*
title("Mon projet python Nolan" )
bgcolor("black" )#Je change de couleur l'arrière plan
speed("fastest" )#La vitesse
shape("blank" ) #Faire disparaître le curseur
for i in range(125):

    color("red" )
    forward(100+i)#A chaque fois, il augmente de +1
    left(90)
    color("green" )
    forward(100)
    left(90) #Il tourne à gauche
    color("blue" )
    forward(100)
    left(90)
    color("yellow" )
    forward(100)
    up() #Je lève le crayon
    forward(10)
    down()#Je remet le crayon
            

Mes commentaires

Quand on débute dans un langage de programmation, commenter ses sources a une importance particulière : aider à mémoriser les instructions simples. Mais Python est tellement "lisible" que la plupart des commentaires sont ici inutiles. 

Le résultat est simple et joli, et je ne me suis posé qu'une question à la lecture du code : Pourquoi 125 itérations ?

La déception Plickers

Oui, je suis déçu.

Plickers était un merveilleux outil pédagogique. Etait ? Oui Plickers a changé depuis cette rentrée 2018. La version gratuite unique et les espoirs d’évolutions ont disparu…

Ma version (gratuite) est maintenant bridée : Le nombre de questions par lot est maintenant limité à 5…

Sauf si je paye… Je dois débourser environ 9 dollars par mois pour que mes élèves puissent bénéficier d’une version pro, sans limitation…

Bien sûr le développement de Plickers a un coût et le travail effectué est de qualité. Bien sûr tout travail mérite salaire, et un retour sur investissement des développeurs est souhaitable, mais le bas me blesse à deux endroits :

  1. Je n’ai pas eue d’informations en m’inscrivant par le passé sur la temporalité de l’offre proposé. Complètement emballé j’ai préparé de nombreux questionnaires en local, et je continuais à les peaufiner sans me douter que ce travail n’aurait une utilité qu’en cédant au chantage… Il me faut payer ou m’avouer avoir perdu mon temps…
  2. Plickers peut-être un atout pour les entités éducatives (Education Nationale par exemple) Il me semble logique que ces entités sont les vrais clients d’un tel service, beaucoup plus que les simples profs…

Je continuerai, malgré les limitations à utiliser ce formidable outil, en attendant l’émergence d’une alternative, pourquoi pas open-source ?

Quel est le meilleur format de documents pour un TBI (ou VPI) ?

Le tableau blanc interactif (TBI) est de plus en plus utilisé dans le cadre scolaire.  Nous pouvons y trouver de nombreux avantages pour améliorer les enseignements.

  • Meilleure présentation de certains contenus théoriques.
  • Variété des modes d’enseignement et d’apprentissage; contenus enrichis.
  • Moins de temps investi grâce à la mutualisation des ressources.
  • Favorise les interactions entre les apprenants et l’enseignant.
  • Permet une mémorisation visuelle
  • Facilite les travaux de groupe
  • Modifications en temps réel.
  • Intérêt, motivation, stimulation.
  • Interactions, collaboration, espaces d’interactions partagés.

La question à laquelle j’aimerai répondre ici est la suivante :

Quel est le format des données le mieux adapté à une diffusion sur TBI ? L’Education Nationale et le domaine de l’entreprise utilisent dans une grande majorité des publications type Powerpoint :

Les résultats sont de qualité très variables…

Mais ce n’est pas tant les mauvaises présentations qui m’agacent que le fait même que toutes ces présentations aient un même schéma et utilisent les mêmes karaoké visuels : Diapositive après diapositive j’ai l’impression d’être gavé…

Alors pourquoi ne pas innover ?

J’ai choisi de m’orienter vers le format vectoriel pour plusieurs raisons:

Avant même inkscape, les moins jeunes se souviennent de sodipodi qui ouvrait à l’époque le chemin vers ces graphismes qui ne souffraient pas d’une pixellisation quelque soit le zoom effectué !

D’après Wikipedia :

Une image vectorielle (ou image en mode trait), en informatique, est une image numérique composée d’objets géométriques individuels, des primitives géométriques (segments de droite, arcs de cercle, courbes de Bézier, polygones, etc.), définis chacun par différents attributs (forme, position, couleur, remplissage, visibilité, etc.) et auxquels on peut appliquer différentes transformations (homothéties, rotations, écrasement, mise à l’échelle, extrusion, inclinaison, effet miroir, dégradé de formes, morphage, symétrie, translation, interpolation, coniques ou bien les formes de révolution). Elle se différencie en cela des images matricielles (ou images bitmap), qui sont constituées de pixels.

Et pour transformer un contenu vectoriel en “présentation”,  je me tourne vers sozi . Je dispose alors d’un document HTML 5 que je peux uploader vers un site web.

Quelques exemples

Niveau sixième :

Les entiers naturels :
Les éléments de géométrie

Niveau troisième :

Statistiques et probabilités
La propriété de Thalès

Dans certains de ces documents j’ai ajouté du son, en modifiant le code html avec le très bon notepad++

Vous vous posez des questions, ou vous avez un avis, même éloigné du mien, n’hésitez pas commenter !

Mathématiques et Paris sportifs

Rugby player

-“A quoi servent les Mathématiques ?”

-“A comprendre la vie !”

Les paris sportifs sont à la mode depuis un certain temps. Passion pour certains, moyen d’arrondir les fin de mois pour d’autres, ils sont souvent abordés sans une connaissance mathématique préalable …

En effet même si une bonne connaissance footballistique peut s’avérer nécessaire pour parier sur le foot, elle n’est pas suffisante pour parier intelligemment.

I. Définition du TRJ.

Le TRJ est défini comme : la proportion des sommes gagnées par le(s) joueur(s) par rapport à la totalité de leur(s) mises ou dépenses (droit d’inscription par exemple pour les tournois de poker), pour une période de temps donné c’est-à-dire le pourcentage des mises des joueurs Taux de retour au joueur (TRJ),
redistribué aux joueurs sous forme de gain. Il s’agit donc bien de la masse d’argent qui ne revient ni à l’opérateur ni aux pouvoirs publics mais aux joueurs.

II. Législation.

En France, depuis la loi de mai 2010 et à la différence de la plupart des Etats, le TRJ est plafonné à une moyenne de 85% calculée sur deux trimestres consécutifs.

III. Un exemple détaillé.

Mettons nous à la place d’un bookmaker d’un site de paris en France. Monsieur Six va gagner son match de dés contre monsieur Un_ou_deux avec une probabilité de 1/6 (soit environ 0,17), il perdra 2 fois sur 6  (environ 0,33) et fera match nul le reste du temps 3/6=0.5…

Les cotes (1N2) devraient être

  • 1:      6 contre 1
  • N:     2 contre 1
  • 2:      3 contre 1

Un joueur lambda qui a misé 1€ sur le résultat 1 gagnera 6€ une fois sur 6 et perdra 5 fois sur 6. En moyenne sur 6 jeux ils remboursera sa mise de 6€. On dit que son espérance de gain est 1 (pour 1).

Un autre joueur qui a misé sur le N 1 € gagnera 2 € une fois sur 2. En moyenne il remboursera sa mise de 2 € tous les 2 jeux…

Un troisième joueur qui a misé sur 2 ne gagnera que 2 fois sur 6  : 3€. Je vous laisse vous convaincre que son espérance de gain est encore 1.

Le bookmaker redistribuera donc en moyenne donc toutes les mises, soit 100% et sera hors la loi !

vacances aout 2008

Diminuons chaque cote pour ne distribuer que 85% comme il est préconisé :

  • 1:      6 x 85/100 = 5.1
  • N:     2 x 85/100 = 1.7
  • 2:      3 x 85/100 = 2.55

Le résultat le plus probable est toujours le match nul mais que se passe-t-il si on mise à présent sur ce résultat :

1 fois sur deux on gagnera 1.7€, une fois sur 2 on perdra 1€…

On perdra en moyenne 1,30 tous les deux euros investis, soit 0.15€ pour chaque euro investi ! (Espérance de gain : 0.85)

Il semble donc que le joueur soit condamné à perdre…

IV. Et pourtant…

Nous connaissons tous, un Raymond, un Gilbert ou un Gérard, vieux joueur de PMU à la réputation, fondée, d’être un joueur gagnant. Vous l’avez sans doute entendu maugréer  une phrase du genre:

-” Avec l’effet Abrivard, on passe à moins de 2 contre 1 j’ai plus la cote…”

C’est incontestablement la fin de sa phrase qui donne la piste à suivre !

Avoir la cote :  Le mot ‘cote’ est une des nombreuses preuves qu’en français, un simple circonflexe peut changer complètement le sens d’un mot.
En effet, il n’est point ici question de la côte de porc ou de la course de côtes, mais de la ‘cote’ au sens d’appréciation, de note, de valeur, comme on le trouve dans la “cote d’alerte”, la “cote mobilière” ou la cote d’une action en bourse, par exemple.

Ici, c’est le sens d’appréciation qui est retenu, quelqu’un qui a la cote étant quelqu’un de très apprécié car, bien que l’expression ne contienne aucun adjectif, la ‘cote’ est implicitement élevée. 

Quand Gilbert dit ici qu’il n’a plus la cote il veut dire qu’il n’a plus la cote suffisante pour investir…

On peut supposer qu’il voulait jouer un cheval gagnant, et qu’il avait une bonne chance de remporter l’épreuve. Si le fait que la cote passe sous les 2/1 l’inquiète c’est qu’il envisageait la probabilité que son cheval gagne aux environs de 0.5 (une fois sur 2)

Ce joueur a compris que quand on parie, l’adversaire n’est pas autrui (l’autre joueur) mais la cote !

poker

V. Quand jouer ?

A Le Surebet

Un surebet, littéralement un pari certain, est un événement rare qui permet au parieur d’empocher de façon certaine un peu d’argent.

Imaginons un match de tennis entre John Doe (côté à 1.8/1) et Paul Smith (côté à 3.6/1). Savez-vous qu’il est possible de gagner de façon certaine ?

Si on joue 2€ à 1.8/1 et 1€ à 3.6/1 on dépense 3€… Si John l’emporte on gagne 2×1.8=3.6 € pour un bénéfice net de 0.60€. Si par contre il perd, Paul l’emporte, on empoche 3.6€ pour un bénéfice de 0.60€

Ainsi le bénéfice minimum est de 0.60€ pour un investissement de 3€ soit 20% du capital investi et ce sans aucune connaissance en Tennis !

Comment pouvait-on se rendre compte que ce surebet était possible ?

On a vu précédemment que les bookmakers diminuaient les cotes pour respecter les 85% maximum de TRJ. La probabilité étant l’inverse de la cote, il faut s’attendre, en ajoutant les probabilités à dépasser sensiblement 1 !

Ici on trouve environ 0,83 : Le surebet est possible !

J’ai créé une petite application gratuite (en Python) qui permet non seulement de détecter les éventuels Surebet mais qui indique aussi la meilleure rentabilité en terme de mise : aide_aux_paris.py

B. Le value Bet

Beaucoup plus fréquent que le surebet est le valuebet. Il s’agit d’un pari, pas toujours gagnant (donc risqué au sens probabiliste) mais rentable : Il s’appuie sur une erreur de cotation des bookmakers.

Exemple :

Cette image est extraite du très pratique cotes.fr dont la vocation est de comparer les cotes de différents sites de paris sportifs.

Avec une calculatrice calculez 1/1.08… Vous trouverez environ 0,93. Si vous pensez que Rafael Nadal à une probabilité de l’emporter supérieur à 93% vous devez miser sur lui, sinon définitivement vous abstenir !

Mais attention, des spécialistes avaient évalué cette proba à 0.85/1.08 soit environ 79%. Etes vous meilleurs qu’eux en connaissances tennistique .?

Avec  aide_aux_paris.py en saisissant les cotes on obtient :


Le soft vous donne de nombreuses informations :

  • Les modifications de cotes pour rendre le surebet possible.
  • Les cotes en valuebet minimum (qui gomment le TRJ)

Plus d’informations sur ce logiciel d’aide aux paris sportifs gratuit.

En cadeau, et en guise de conclusion

Pour les jeux d’incertitude, jeux ou le hasard tient une place importante (Paris sportifs, courses hippiques, poker etc.) , je conseille d’avoir en mémoire, ou sous les yeux le rapport entre cote et probabilités:

Vous pouvez télécharger et imprimer ce document en PDF.

LIENS CONNEXES :