Après avoir tapé le code dans une cellule pour l'exécuter tapez Shift+Entré
et l'ordinateur calcule le résultat.
Le code doit être correctement indenté (pour préciser l'intérieur des boucles ou des tests).
Une variable peut être: déclarée, affectée, appelée.
range(20)
désigne l'intervalle des nombres entiers de 0 (inclus) à 20 (exclu). range(1,20)
désigne l'intervalle des nombres entiers de 1 (inclus) à 20 (exclu).
Le programme ci-dessous est une boucle: la variable i prend successivement les valeurs de 0 à 19 et à chaque tour de la boucle l'instruction print(i) est exécutée. Notez bien l'indentation du code, n'oubliez pas les :
for i in range(20): print(i)
Nous avons vu la semaine dernière comment tirer des nombres au hasard:
from random import * print(randint(1,6))
Notez que l'instruction d'importation ne doit être faite qu'une seule fois.
randint(1,6)
choisit un nombre aléatoire entre 1 et 6 (inclus).
Affichez 30 nombres tirés au hasard entre 1 et 6.
Voici comment remplir une liste avec 20 nombres tirés au hasard entre 1 et 6.
L=[] for i in range(20): L.append(randint(1,6)) print(L)
Calculez la moyenne de la liste L
tirée au hasard précédemment.
Faites suffisamment de tirage pour constater que la moyenne tend vers 3,5
.
On lance maintenant deux dés et on calcule leur somme.
Lancez 20 fois deux dés et calculer leur somme (chacune des 20 fois).
Lancez à nouveau 20 fois deux dés et ranger les résultats dans une liste.
Quelle est la moyenne d'un grand nombre de tirages de deux dés ?
L'expérience consiste donc à lancer deux dés (ici tirer deux nombres au hasard entre 1 et 6) et à calculer leur somme. On peut donc obtenir un nombre entre 2 et 12. La question que vous allez résoudre expérimentalement est de savoir quelle est la probabilité de faire 2, la probabilité de faire 7, etc.
Programmez une boucle pour tirer une centaine de fois deux dés et déterminer combien de fois la somme 2 est apparue. De même déterminer combien de fois la somme 7 est apparue.
Vous avez intérêt à augmenter le nombre de lancés (1000 fois, 10 000 fois) pour que ce nombre moyen d'occurence se stabilise.
Sachant que ces nombres sont rationnels, avez-vous une précision assez grande pour les reconnaître: la probabilité que la somme deux dés soit 7 est exactement : ???
Remplissez une liste de 1000 lancés de deux dés et calculez la liste des fréquences: frequence[2]
est le nombre de fois où la somme 2 apparaît dans votre liste. Affichez fréquence.
Avec matplotlib.pyplot.plot()
vous pouvez visualiser vos données:
import matplotlib.pyplot as pyplt pyplt.plot(frequence)
(Il y a aussi une fonction matplotlib.pyplot.hist()
pour tracer des histogrammes).
Au fait la fonction randint()
choisit-elle bien les nombres avec une loi uniforme ? Tracez, juste pour randint()
la courbe des fréquences (pour un nombre de tirages assez élevés.
On tire maintenant 100 nombres au hasard entre 0 et 1 et on calcule leur somme.
randint(2,12)
, en faisant la somme de deux dés, en faisant la somme de 10 nombres pris au hasard entre 0 et 1 (en ajoutant cette somme à 2).