J'étudie Python régulièrement à freeCodeCamp. Dans Article précédent, cette fois, nous allons contester * Probability Calculator *.
Ce problème est un problème qui semble avoir été résolu en tant que problème de probabilité lorsque j'étais étudiant. Trouvez la probabilité de retirer plusieurs boules colorées dans un chapeau (sac). En particulier,
--Création d'une classe Hat --Création de la méthode expérimentale: méthode pour trouver la probabilité
Cette fois, il y a un processus de retrait aléatoire de la balle du chapeau. Cela ne fonctionne pas lorsque je veux écrire un test comme ci-dessous.
1 import unittest
2
3 class UnitTests(unittest.TestCase):
4 #Lorsque vous sortez 2 balles d'un chapeau avec 5 balles rouges et 2 balles bleues, il y a 1 balle rouge et 1 balle bleue.
5 def test_hat_draw(self):
6 hat = prob_calculator.Hat(red=5,blue=2)
7 actual = hat.draw(2)
8 expected = ['blue', 'red']
9 self.assertEqual(actual, expected, 'Expected hat draw to return two random items from hat contents.')
10 actual = len(hat.contents)
11 expected = 5
12 self.assertEqual(actual, expected, 'Expected hat draw to reduce number of items in contents.')
Lorsque vous dessinez deux boules sur la 7ème ligne, l'implémentation interne utilise des nombres aléatoires, il n'y a donc pas toujours une boule rouge et une boule bleue.
Utilisez random seed
pour résoudre ce problème.
import random
balls = ['red', 'red', 'red', 'red', 'red', 'blue', 'blue']
random.sample(balls, k=2)
# ['red', 'red']
random.sample(balls, k=2)
# ['red', 'blue']
random.seed(0)
random.sample(balls, k=2)
# ['blue', 'red']
random.seed(0)
random.sample(balls, k=2)
# ['blue', 'red']
En définissant la graine du nombre aléatoire à l'avance de cette manière, le même comportement peut toujours être obtenu.
Le calcul scientifique avec Python est terminé! Ensuite, je vais commencer à faire l'analyse des données avec la certification Python!
Recommended Posts