« Mathématiques avec Python et Ruby/Nombres pseudo-aléatoires en Ruby » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 56 :
 
==Tirer 5 cartes au hasard==
 
Pour constituer une main de 5 cartes, il suffit ''a priori'' de faire 5 fois l'opération précédente:
 
<source lang="ruby">
valeurs=[1,7,8,9,10,'Valet','Dame','Roi']
valeurs=valeurs.collect { |v| v.to_s}
couleurs=['carreau','coeur','pique','trèfle']
univers=[]
valeurs.collect{|v| couleurs.collect{|c| univers.push(v+' '+c)}}
 
hand=[]
((1..5).to_a).collect{|c| hand.push(univers[rand(univers.size)])}
puts(hand)
</source>
 
Seulement il peut arriver qu'on ait deux fois l'as de pique dans la même main ! En effet le script précédent réalise un ''tirage avec remise'', pour lequel les calculs de probabilités sont plus faciles, mais irréaliste pour les jeux de cartes et le Loto. Ce dont on a besoin dans le cas présent, c'est d'un ''tirage sans remise'', qui se produira en enlevant les cartes au fur et à mesure qu'on les met dans la main de 5 cartes.
 
 
==Mélanger un jeu de cartes==