Comment générer des nombres aléatoires avec une distribution personnalisée en Python ?

Susan Sarandon
Libérer: 2024-11-10 19:03:02
original
467 Les gens l'ont consulté

How to Generate Random Numbers with a Custom Distribution in Python?

Génération de nombres aléatoires à l'aide d'une distribution spécifique

Vous possédez un fichier contenant des probabilités pour des valeurs distinctes :

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

Votre objectif est de générer des nombres aléatoires basés sur cette distribution. Vous recherchez un module existant capable de gérer cette tâche, reconnaissant qu'il s'agit d'un problème répandu qui a peut-être déjà incité au développement de fonctions ou de modules spécialisés.

Solution

L'écosystème Python propose plusieurs options pour générer des nombres aléatoires avec un distribution :

  1. scipy.stats.rv_discrete :

    • Fournissez vos probabilités dans le paramètre de valeurs.
    • Utilisez la méthode rvs() de l'objet de distribution pour générer des nombres.
  2. numpy.random.choice() avec le paramètre p :

    • Passez les probabilités comme mot-clé p paramètre.
    • 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
  3. random.choices() (Python 3.6 ):

    • Cette fonction de la bibliothèque standard permet de spécifier probabilités.
    • Exemple :

      import random
      random.choices(population=list(range(1, 7)), weights=[0.1, 0.05, 0.05, 0.2, 0.4, 0.2])
      Copier après la connexion

Ces modules fournissent des moyens efficaces et simples de générer des nombres aléatoires avec une distribution donnée, éliminant le besoin de mettre en œuvre des algorithmes personnalisés.

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