8.2 Mise en oeuvre du module random de Python
La bibliothèque numpy dispose du module random() qui possède plusiers fonctions.
Ainsi:
- random.uniform(\(a\),\(b\)) permet de retourner de retourner un flottant dans l'intervalle \(\left[a,b\right]\) simulant un tirage aléatoire avec une distribution uniforme dans cet intervalle.Voici par exemple l'histogramme de la génération de \(N=10000\) tirages aléatoires successifs retournés par random.uniform(\(-0.5\),\(0.5\)):
On peut se faire une idée de la qualité de la randomisation en comparant l'histogramme cumulé avec la fonction de répartition théorique associée à \(\mathcal{U}\left(-a,a\right)\):
- random.triangular(\(a\),\(x_{0}\),\(b\)) permet de retourner de retourner un flottant dans l'intervalle \(\left[a,b\right]\) simulant un tirage aléatoire avec une distribution triangulaire centrée sur \(x_{0}\) dans cet intervalle.Voici par exemple l'histogramme de la génération de \(N=10000\) tirages aléatoires successifs retournés par random.triangular(\(-0.5\),\(0.0\),\(0.5\)):
On peut se faire une idée de la qualité de la randomisation en comparant l'histogramme cumulé avec la fonction de répartition théorique associée à \(\mathcal{T}\left(-a,a\right)\):
- random.normal(\(\mu\),\(\sigma\)) permet de retourner de retourner un flottant simulant un tirage aléatoire avec une distribution normale:
- d'espérance \(\mu\)
- de variance \(\sigma^{2}\)
Voici par exemple l'histogramme de la génération de \(N=10000\) tirages aléatoires successifs retournés par random.normal(\(0.0\),\(1.0\)):
On peut se faire une idée de la qualité de la randomisation en comparant l'histogramme cumulé avec la fonction de répartition théorique associée à \(\mathcal{N}\left(0,1\right)\):
En conclusion, la randomisation proposée par les modules python ci-dessus semble tout à fait satisfaisante, avec les exemples basés sur \(N=10000\) échantillons.