Comment générer des nombres aléatoires en Python dont la somme correspond à une valeur spécifique ?

DDD
Libérer: 2024-10-29 17:28:03
original
433 Les gens l'ont consulté

How to Generate Random Numbers in Python That Sum to a Specific Value?

Génération de nombres aléatoires totalisant une valeur désignée

En Python, il existe une solution simple pour créer n nombres pseudo-aléatoires qui, lorsque additionnés, atteignent une valeur cible prédéfinie, tout en garantissant que toutes les combinaisons possibles ont la même probabilité de se produire.

La méthode consiste à utiliser la fonction random.sample pour sélectionner un ensemble ordonné de n-1 nombres uniques entre 1 et le somme cible. Les nombres choisis servent de diviseurs, divisant efficacement la cible en n entiers positifs.

Considérons l'exemple de la génération de 4 nombres aléatoires totalisant 40. Les diviseurs générés pourraient être [4, 11, 24] (choisis parmi des nombres aléatoires .sample(plage(1, 40), 3)). Les nombres correspondants, dont la somme est 40, sont calculés comme [4, 7, 13, 6].

Pour garantir que chaque combinaison possible a une probabilité égale, il est crucial de sélectionner les diviseurs dans ordre croissant. De plus, cette approche s'adapte sans effort à différentes valeurs cibles, ce qui la rend polyvalente pour différents scénarios.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal