On trouve la fonction Random dans les calculatrices, dans de nombreux logiciels ou langages de programmation. Dans un tableur, elle se note alea(). En langage Python, elle se note random(). Lorsqu'elle est appelée, elle fournit à l'utilisateur un nombre pseudo-aléatoire. Nous l'utiliserons dès que nous étudierons des phénomènes aléatoires.
Dans un fichier Python, après avoir importé la bibliothèque random, programmez l'affichage des valeurs prises par la fonction random().
Que constatez-vous ?
Aide à la programmation :
from random import*
Objectif : Dans cette activité, on souhaite vérifier que la fonction random() de Python suit une répartition uniforme.
Nous allons étudier la répartition des valeurs prises par random() dans l'intervalle [0;1[ et vérifier que cette répartition se fait de manière uniforme ce qui validera ainsi son utilisation dans d'autres simulations.
Construire la fonction Python, nbAlea(...), qui prend n en paramètre et qui permet de créer une liste de n nombres aléatoires obtenus avec la fonction random(). On vérifiera que les valeurs de cette liste sont bien contenues dans l'intervalle [0;1[.
Aide à la programmation :
#Fonction ayant un paramètre #Création de la fonction qui multiplie par 2 un nombre passé en argument def mult_2(a): produit=2*a return produit
from random import*
liste=[] #création d'une variable de type liste for i in range(10): liste.append(i) #ajout de la valeur i à la liste
Construire la fonction Python, affichage(...), qui permet d'afficher le nuage de points dont les abscisses sont les valeurs contenues dans la liste et dont les ordonnées sont égales à 1.
Aide à la programmation :
from pylab import*
#Création d'un nuage de points xlabel("légende des abscisses ") #Légende sur l'axe des abscisses ylabel("légende des ordonnées ") #Légende sur l'axe des abscisses xlim(0, 4.5) #xmin=0 et xmax=4,5 ylim(0, 3.5) #ymin=0 et ymax=3,5 x=[1,2,3,4] # liste des abscisses des points y=[0,1,2,3] # liste des ordonnées des points plot(x,y,'ro') # représentation du point de coordonnées (p*i,y) show() # pour voir le repère
Testez ces fonctions pour de grandes valeurs de n. Que constatez-vous ?
Que doit-on modifier dans la fonction nbAlea(...) de manière à obtenir un nombre dans [1;3[ ?
Modifiez le programme précédent de manière à obtenir un nuage de points « au hasard » compris entre [1; 3[.
Solution de cette question : Voir