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

Contenu supprimé Contenu ajouté
Ligne 67 :
 
hand=[]
((1..5).to_a).collect{|c| hand.push(univers[rand(univers.size)])}
puts(hand)
</source>
Ligne 73 :
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.
 
<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=[]
while hand.size<5
jeu=univers-hand
carte=jeu[rand(jeu.size)]
hand.push(carte)
end
 
puts(hand)
</source>
 
Le jeu dont on a extrait les cartes est une variable locale, et à la fin de ce script il y a toujours 32 cartes dans l'univers.
 
==Mélanger un jeu de cartes==