Cet article aborde le défi de la génération de nombres aléatoires basés sur une distribution donnée. En particulier, l'accent est mis sur une distribution spécifique, comme indiqué dans l'entrée :
1 0.1 2 0.05 3 0.05 4 0.2 5 0.4 6 0.2
Il est possible de développer une solution personnalisée pour générer nombres aléatoires selon la distribution donnée. Cela implique de créer la fonction de densité cumulée et de sélectionner la valeur correspondante en fonction d'une valeur générée aléatoirement entre 0 et 1. Cependant, de nombreux modules existants peuvent simplifier cette tâche, éliminant le besoin de codage manuel.
L'un de ces modules est scipy.stats.rv_discrete, qui vous permet de spécifier des probabilités via son paramètre de valeurs. Pour générer des nombres aléatoires, vous pouvez appeler la méthode rvs() de l'objet de distribution.
Une autre option consiste à utiliser numpy.random.choice() fonction. Il accepte une liste de valeurs et attribue des probabilités à l'aide du paramètre de mot-clé p. Par exemple :
numpy.random.choice(numpy.arange(1, 7), p=[0.1, 0.05, 0.05, 0.2, 0.4, 0.2])
Pour Python 3.6 et supérieur, vous pouvez exploiter random.choices() à partir de la bibliothèque standard. Voici un exemple :
import random random.choices(range(1, 7), weights=[0.1, 0.05, 0.05, 0.2, 0.4, 0.2])
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!