Évènements et probabilités

vendredi 4 octobre 2013
par  Alain BUSSER

Les axiomes des probabilités sont basés sur la notion d’ensemble. Alors pourquoi pas afficher, à chaque mise à jour d’un ensemble (ajout d’un élement par exemple) la probabilité de l’évènement qu’il représente ?

On peut demander de dessiner un évènement en y plaçant toutes les éventualités qu’il contient. Ce sera fait ici

  • avec un (chaque face du dé est dessinée sur une carte, et les cartes doivent être placées dans un sac représentant l’évènement décrit),
  • ou avec une carte (mais l’évènement « la carte est un valet » sera alors représenté par 4 cartes, les valets, et non une carte...)

Avec un dé

Chaque face du dé est dessinée sur un objet de type « canvas » (appelé ctx ci-dessous), de couleur ivoire et à bords arrondis, avec des points (des disques en réalité, ou plutôt des arcs de cercle allant de 0 à 2π dans le sens direct) rajoutés à des endroits qui dépendent de la valeur à afficher :

  1. if valeur > 1
  2.         ctx.moveTo 12, 12
  3.         ctx.arc 12, 12, 4, 0, 2*pi, true
  4.         ctx.moveTo 36, 36
  5.         ctx.arc 36, 36, 4, 0, 2*pi, true
  6.         if valeur > 3
  7.                 ctx.moveTo 12, 36
  8.                 ctx.arc 12, 36, 4, 0, 2*pi, true
  9.                 ctx.moveTo 36, 12
  10.                 ctx.arc 36, 12, 4, 0, 2*pi, true
  11.                 if valeur > 5
  12.                         ctx.moveTo 12, 24
  13.                         ctx.arc 12, 24, 4, 0, 2*pi, true
  14.                         ctx.moveTo 36, 24
  15.                         ctx.arc 36, 24, 4, 0, 2*pi, true
  16. if valeur % 2 is 1
  17.         ctx.moveTo 24, 24
  18.         ctx.arc 24, 24, 4, 0, 2*pi, true

Télécharger

L’algorithme utilisé est le suivant :

  • si la valeur est nulle on ne dessine pas de point (utile à la fin, les nombres impairs étant dessinés en rajoutant un point central au nombre précédent) ;
  • si la valeur est supérieure à 1, on met deux points diagonalement opposés
  • si la valeur est supérieure à 3, on ajoute deux points sur l’autre diagonale
  • si la valeur est supérieure à 5, on ajoute deux points à gauche et à droite
  • si la valeur est impaire, on ajoute un point central
évènements simples intersections réunions
le fichier, à ouvrir dans un autre onglet pour en voir l’effet
le fichier, à ouvrir dans un autre onglet pour en voir l’effet
le fichier, à ouvrir dans un autre onglet pour en voir l’effet

Avec une carte à jouer dans un jeu de 32

Chaque carte est une « div » de html, à bords arrondis, et décalée vers la droite pour permettre aux cartes de se chevaucher. Elle comporte un texte comme « R♣ » qui permet de repérer et compter les cartes par certains algorithmes (par exemple, un trèfle est une chaîne de caractères qui contient un « ♣ », une figure commence par « V », « D » ou « R » etc. Ces algorithmes sont rangés dans un tableau (ou objet CoffeeScript) appelé comprehensions, chacun repéré par une chaîne de caractères le décrivant (son nom [1]). Les voici :

  1.         comprehensions =
  2.                 "un carreau": (x) -> '♦' in x
  3.                 "un cœur": (x) -> '♥' in x
  4.                 "un pique": (x) -> '♠' in x
  5.                 "un trèfle": (x) -> '♣' in x
  6.                 "rouge": (x) -> '♦' in x or '♥' in x
  7.                 "noire": (x) -> '♠' in x or '♣' in x
  8.                 "un valet": (x) -> x[..0] is 'V'
  9.                 "une dame": (x) -> x[..0] is 'D'
  10.                 "un roi": (x) -> x[..0] is 'R'
  11.                 "un as": (x) -> x[..0] is '1' and x[..1] isnt '10'
  12.                 "une figure": (x) -> x[..0] in ['V','D','R']
  13.                 "un nombre": (x) -> parseInt(x) < 11
  14.                 "un nombre pair": (x) -> parseInt(x) < 11 and parseInt(x)%2 is 0
  15.                 "un nombre impair": (x) -> parseInt(x) < 11 and parseInt(x)%2 isnt 0

Télécharger

Alors pour fabriquer un évènement au hasard, il suffit de construire le tableau contenant tous ces noms d’algorithmes, et d’y choisir un élément au hasard :

  1.         descr = Object.keys comprehensions
  2.         dé = Math.floor Math.random()*descr.length
  3.         descompreh=descr[]
  4.         $(".compreh").text descompreh

Télécharger

évènements simples intersections réunions
le fichier html (avec un clic droit, on peut ouvrir dans un autre onglet)
le fichier html (avec un clic droit, on peut ouvrir dans un autre onglet)
le fichier html (avec un clic droit, on peut ouvrir dans un autre onglet)

Le premier exercice, en ligne :

probas Dé

Constituer l'évènement suivant :

Le résultat du lancer est

Probabilité

L'évènement {} contient 0 éventualités (ou cas favorables), sur 6 cas possibles au total, sa probabilité est donc 0/6 = 0.

L'événement {} ne décrit pas l'événement "le résultat est "


[1Cette façon de faire est directement inspirée par le logiciel libre DGPad.


Commentaires