« Mathématiques avec Python et Ruby/Ensembles en Ruby » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Ligne 29 :
 
==Avec des cartes==
 
Cette fois-ci, on extrait au hasard une carte parmi un jeu de 32 cartes.
 
On construit l'univers par un ''produit cartésien'' entre l'ensemble des valeurs et celui des couleurs:
Ligne 66 ⟶ 68 :
</source>
 
==Évènements simultanés==
 
===Notation===
 
L'évènement "A et B" se note <math>A \cap B</math>, et l'opération se note en ''Ruby'' par le symbole ''ampersand'' (''&'').
 
===Avec le dé===
 
<source lang="ruby">
Ligne 80 ⟶ 82 :
</source>
 
===Avec les cartes===
 
Le script suivant montre que dans un jeu de 32 cartes, il y en a 3 qui sont à la fois des figures et des piques: Les trois figures de pique:
=Le "ou" inclusif=
 
<source lang="ruby">
==Notation==
puts(figure&pique)
</source>
 
 
==Le "ou" inclusif==
 
===Notation===
 
De même l'évènement "A ou B" se note <math>A \cup B</math>, et en ''Ruby'', le symbole ''pipe'' (trait vertical). ''Ruby'' enlève automatiquement les doublons.
 
===Avec le dé===
 
<source lang="ruby">
Ligne 94 ⟶ 103 :
pair=[2,4,6]
puts(petit|pair)
</source>
 
===Avec les cartes===
 
On peut compter les cartes qui sont des figures ou des piques:
 
<source lang="ruby">
puts(figure|pique)
puts((figure|pique).length)
</source>
 
...mais on peut aussi laisser ''Ruby'' les compter, il en trouve 17. Ce comptage est à la base des calculs de probabilité.
 
 
==Contraire==
 
Pour calculer le contraire d'un évènement, on le soustrait à l'univers.
 
===Avec le dé===
 
<source lang="ruby">
univers=[1,2,3,4,5,6]
petit=[1,2,3,4]
pair=[2,4,6]
puts(univers-petit)
puts(univers-pair)
</source>
 
Ce qui montre que le contraire de "pair" est "impair".
 
===Avec les cartes===
 
<source lang="ruby">
puts(univers-figure)
puts(univers-pique)
</source>
 
=Probabilités=
 
En ''Ruby'', le nombre d'éventualités qu'il y a dans un évènement est appelé sa longueur. La probabilité d'un évènement est alors le quotient de sa longueur par celle de l'univers.
 
==Avec le dé==
 
<source lang="ruby">
require 'mathn'
univers=[1,2,3,4,5,6]
petit=[1,2,3,4]
pair=[2,4,6]
puts(Rational(petit.length(),univers.length()))
puts(Rational(pair.length(),univers.length()))
 
 
def proba(e,u)
return Rational(e.length(),u.length())
end
 
p1=proba(petit,univers)+proba(pair,univers)-proba(petit&pair,univers)
puts(p1)
p2=proba(petit|pair,univers)
puts(p1==p2)
 
</source>
 
==Avec les cartes==
 
<source lang="ruby">
require 'mathn'
 
puts(Rational(figure.length(),univers.length()))
puts(Rational(pique.length(),univers.length()))
 
 
def proba(e,u)
return Rational(e.length(),u.length())
end
 
p1=proba(figure,univers)+proba(pique,univers)-proba(figure&pique,univers)
puts(p1)
p2=proba(figure|pique,univers)
puts(p1==p2)
</source>
 
==Probabilités conditionnelles==
 
Ci-dessus, on a défini les probabilités avec comme paramètre l'univers. En effet, cette variable est globale, donc inaccessible ''a priori'' dans le corps de la fonction. Ceci permet de remplacer l'univers par un autre évènement, et donc de définir la probabilité conditionnelle. Par exemple, avec le dé:
 
<source lang="ruby">
require 'mathn'
univers=[1,2,3,4,5,6]
petit=[1,2,3,4]
pair=[2,4,6]
 
def proba(e,u)
return Rational(e.length(),u.length())
end
 
p1=proba(petit&pair,petit)
puts(p1)
p2=proba(petit&pair,pair)
puts(p1==p2)
 
</source>