Maison > développement back-end > Tutoriel Python > Comment générer des nombres aléatoires avec une distribution numérique spécifiée en Python ?

Comment générer des nombres aléatoires avec une distribution numérique spécifiée en Python ?

Barbara Streisand
Libérer: 2024-11-11 04:43:02
original
579 Les gens l'ont consulté

How to Generate Random Numbers with a Specified Numerical Distribution in Python?

Génération de nombres aléatoires avec une distribution numérique spécifiée

Face à la tâche de générer des nombres aléatoires qui adhèrent à une certaine distribution, on peut réfléchir à l'existence de modules préexistants capables de gérer une telle tâche. Après tout, il s'agit d'un problème courant avec une solution potentielle qui a été abordée par de nombreux programmeurs.

Considérons l'exemple suivant :

1 0.1
2 0.05
3 0.05
4 0.2
5 0.4
6 0.2
Copier après la connexion

Ici, nous avons un fichier contenant des valeurs et leurs probabilités correspondantes. Pour générer des nombres aléatoires basés sur cette distribution, nous pourrions utiliser scipy.stats.rv_discrete. En fournissant nos probabilités via le paramètre valeurs, nous pouvons créer un objet de distribution. Par la suite, nous pouvons utiliser la méthode rvs() de l'objet de distribution pour générer des nombres aléatoires.

Cependant, une autre option viable consiste à utiliser numpy.random.choice(). Cette fonction accepte un paramètre de mot-clé p, nous permettant de spécifier directement nos probabilités.

Par exemple :

numpy.random.choice(numpy.arange(1, 7), p=[0.1, 0.05, 0.05, 0.2, 0.4, 0.2])
Copier après la connexion

Et enfin, pour ceux qui utilisent Python 3.6 ou version ultérieure, random.choices() de la bibliothèque standard fournit une solution pratique.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal