On tourne une roue avec une vitesse de départ assez rapide,permettant de faire plusieurs tours:on repère la couleur du cadran qui contient la flèche quand la roue s'arrête.Dans le cas ci dessous la roue s'arrête sur la couleur rouge
On donne le programme suivant:
| En langage Python |
|---|
from random import *
R=[]
def roue(n):
   for i in range (n) :
      L=["bleu","rouge","vert","noir"]
      a=choice(L)
      R.append(a)
   return R
print(roue(12))
|
1.A quoi sert la première ligne de code ainsi que la sixième et septième ligne?
2.Que fait ce programme ?
3.Que faut il modifier dans la fonction pour compter le nombre de fois ou la roue s'arrête sur la couleur bleue ?
4.Vers quel nombre devrait se rapprocher le résultat affiché si on demande print(roue(100)) ?
le jeu de la
bataille navale appelé également le touché-coulé se joue à deux: Chacun des joueurs placent dans une grille des bateaux:
un torpilleur se représente par 2 carreaux, un sous marin par 3 carreaux, un contre torpilleur 3 carreaux, un croiseur 4 carreaux,un porte avion par 5.
cf un exemple de grille ci dessous.

Tour à tour les candidats annoncent une lettre et un chiffre. Si un candidat touche un bateau par exemple un torpilleur il a le droit de rejouer.
1.Quelle est la probabilité pour que du premier coup,un joueur touche un bateau ?
2.Quelle est la probabilité pour qu 'un joueur coule un bateau en deux coup ?
3.On donne le programme suivant :
| En langage Python |
|---|
def choisir(l,c) :
   croiseur=["B2","B3","B4","B5"]
   porte_avion=["I5","I6","I7","I8","I9"]
   contre_torpilleur=["E3","F3","H3"]
   sous_marin=["F7","F8","F9"]
   torpilleur=["D7","D8"]
   resultat= l+str(c)
   if resultat in croiseur:
      return"vous avez touche un croiseur "
   if resultat in porte_avion:
      return"vous avez touché un porte avion"
   if resultat in contre_torpilleur:
      return"vous avez touché un contre torpilleur"
   if resultat in sous_marin :
      return"vous avez touché un sous marin"
   elif resultat in torpilleur:
      return"vous avez touché un torpilleur"
   else:
      return "vous avez perdu !"
print(choisir("F",8))
|
Que contient la variable resultat?
4.Ecrire un programme plus court annoncant à chaque fois au joueur si un bateau sans le nommer a été coulé.
Marche aléatoire à deux dimensions :
Exemple :
On imagine une souris qui part du centre de la figure ci dessous.

la souris se déplace chaque seconde,de façon aléatoire d'un carreau, et peut se diriger uniquement dans les quatre directions
suivantes :
horizontalement(à gauche ou a droite )
verticalement (en haut ou en bas).
Le chemin parcouru par la souris au bout de t secondes et bien aléatoire,de plus elle se déplace dans un plan :on peut modéliser le trajet parcouru par la souris comme une marche aléatoire de dimension 2.
1.Représenter en utilsant matplotlib ,une grille qui affichera le quadrillage du dessin c'est à dire deux axes gradués de 1 en 1 à partir de 0 et de valeur maximale 9.
2.On donne le programme suivant:
| En langage Python |
|---|
def graph_aleatoire(n) :
      x=[5]
      y=[5]
      for i in range (1,n):
          L1=[0,-1,1]
          L2=[-1,1]
          h1=choice(L1)
          h2=choice(L2)
          if h1==0 :
            x.append(x[i-1])
            y.append(y[i-1]+h2)
          else :
            x.append(x[i-1]+h1)
            y.append(y[i-1])
            plt.plot(x,y)
      plt.show()
graph_aleatoire(25)
|
Que fait l'instruction conditionnelle?
3.Que fait ce programme ?
4.Modifier le programme pour écrire les coordonnées du point d'arrivée de la souris.
Méthode de Monté Carlo pour l'approximation du nombre pi :
C'est une méthode probabiliste :On se donne deux figures simples dont l'aire de la surface d'une des figures dépend du nombre pi.
Exemple :
Première figure: un carré de côté 1(unité)
Deuxième figure: un quart de disque de rayon 1 (unité), inscrit dans le carré précédent,l'aire notée A1 de cette surface est égale à pi/4 unite ².
si on définit un point M d'abscisse et d'ordonnée aléatoires entre 0 et 1,la probabilité p pour que le point M appartienne au quart de disque de rayon 1 est égale au rapport des surfaces.
p = Aire de la surface du quart du disque / Aire de la surface du carré
p= pi/4
Or d'après
les lois de probabilités p= f
avec f désignant la fréquence des points qui appartienent au quart du disque si on fait une simulation avec un nombre de points assez grand pris aléatoirement.
Le principe est donc de construire un nombre de point N alétoires et de vérifier si ils sont dans le quart du disque (frontière comprise),
d'en déduire f et ainsi on aura une approximation du nombre pi !
On donne l’algorithme suivant :
| En langage Python |
|---|
from math import*
from random import *
import matplotlib.pyplot as plt
plt.axis(xmin=0, xmax=1,ymin=0,ymax=1)
Lx=[x/400 for x in range (401)]
Ly=[sqrt(1-x**2) for x in Lx]
plt.plot(Lx,Ly,"black",".",ms=4)
def point_monte_carlo(N):
      L_abs =[ random() for i in range(N) ]
      L_ord =[ random() for i in range(N) ]
      plt.plot(L_abs,L_ord ,"b.",ms=5)
      plt.show()
point_monte_carlo(30)
|
1. Expliquer les lignes 5 et 6 du code.
2. Quelle est la différence entre la ligne de code
plt.plot(Lx,Ly,"black",".",ms=4) et
plt.plot(L_abs,L_ord ,"b.",ms=5)
3. Que fait ce programme ?
4. Modifier ce programme pour qu'il affiche:
- le nombre de points parmi les N construits qui appartiennent à la surface du quart du disque.
- la probabilité p pour qu'un point appartiennent à cette surface.
- On pourra également faire apparaître en bleu les points qui appartiennent à cette surface en rouge ceux qui sont à l'extérieur.