Maison  >  Article  >  développement back-end  >  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
Barbara Streisandoriginal
2024-11-11 04:43:02539parcourir

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

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])

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!

Déclaration:
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