Programmation du hasard avec python



Lancer des dés

La bibliothèque random contient des fonctions qui permettent de générer des nombres aléatoires, de simuler des tirages aléatoires.

Exercice 1:
  1. La fonction randint tire un nombre entier aléatoirement (randint est la contraction de rand, pour random ou aléatoire, et int, pour integer ou entier).
    Que fait le programme suivant ? Qu'affiche-t'il ?
    from random import randint 
    
    d=randint(1,6)
    print(d)
    if (d==6): 
       print("Gagné")
    else:
       print("Dommage")
    
  2. Modifier le programme précédent en un programme qui lance 10 fois un dé et qui compte et affiche le nombre de 6 obtenus. (utiliser une boucle for avec la fonction range)
    Calculer alors, et afficher, le pourcentage de 6 obtenus.
    Que devient ce pourcentage lorsqu'on augmente le nombre de lancers (10 lancers, puis 100, 1000, …)


Exercice 2:
  1. Le programme suivant simule le tirage d'un dé.
    Modifier ce programme pour qu'il simule le tirage de deux dé successivement, affiche la somme des deux dés, et affiche "Gagné" si cette somme vaut 4.
    from random import randint 
    
    d=randint(1,6)
    print(d)
    if (d==6): 
       print("Gagné")
    else:
       print("Dommage")
    
  2. De même que dans l'exercice précédent, modifier alors ce programme pour qu'il répète 10 fois le tirage de deux dés et compte le nombre de fois que la somme de 4 a été obtenue.
  3. Afficher alors aussi le pourcentage de 4 obtenus.

    Que devient ce pourcentage lorsqu'on augmente le nombre de lancers (10 lancers, puis 100, 1000, …)

Triangle de Sierpiński

Exercice 3: On considère le triangle ABC dont les sommets sont A(0;0), B(1;0) et C(0;1).
  1. Tracer les trois points A, B, C.
    (rappel: (re)voir Graphiques en python) Qu'affiche le programme suivant ? L'exécuter ensuite pour vérifier.
  2. On considère de plus le point M(0,5 ; 0,5).
    Tracer ce point sur le graphique.
  3. On désigne au hasard un des trois sommets A, B ou C (ou sommet 1, 2 ou 3 …).
    Calculer les coordonnées du point N, milieu du point choisi précédemment et du point M.
    Tracer ce point N sur le graphique.
  4. Le nouveau point M est maintenant le point N.
    Répéter alors ce programme 10 fois: choix au hasard d'un sommet A, B ou C, puis calcul et tracer du point N, milieu de ce sommet et du point M, puis enfin M=N.
  5. Que devient cette figure en traçant 100 fois le point N ? 1000 fois ? 10 000 fois ?

Courbe du dragon

Exercice 4: On part pour cette construction du point A(1;1).

Pour chaque point M(x; y) on constuit le point N(xN; yN) de la façon suivante:
On tire à pile ou face et
  • si on obtient "Pile", alors N a pour coordonnées
    xN = xy/2 et   yN = x + y/2
  • si on obtient "Face", alors N a pour coordonnées
    xN = 1 − x + y/2 et   yN = xy/2
  1. Calculer les coordonnées du point N construit à partir du point A.
  2. Tracer le point A sur un graphique en Python.
  3. Comme dans l'exercice précédent dans la construction du triangle de Sierpiński, construire sur le graphique en Python 10 points successivement:
    • le point N construit à partir du point A.
    • le point M précédent devient maintenant le point N et on construit le point M obtenu à partir de ce point N.
    • le point M précédent devient maintenant le point N et on construit le point M
  4. Tracer 100 points, 1000 points, ... avec la construction précédente.
  5. Modifier le graphique pour tracer tous les points obtenus en ayant tirer Pile de couleur bleue, et tous ceux obtenus en ayant tirer Face de couleur rouge.

Courbe du crabe (ou courbe de Lévy)

Exercice 5: On reprend toute la construction de la courbe du dragon de l'exercice précédent, en modifiant seuelement la règle de construction du point N(xN; yN) à partir du point M(x; y).
On tire de même à pile ou face et
  • si on obtient "Pile", alors N a pour coordonnées
    xN = xy/2 et   yN = x + y/2
  • si on obtient "Face", alors N a pour coordonnées
    xN = 1/2 + x + y/2 et   yN = 1/2xy/2
Tracer de même que dans l'exercice précédent, 100 points, 1000 points, … avec la même règle de construction (concernant les couleurs aussi).



Voir aussi:

LongPage: h2: 4 - h3: 0