Maison >développement back-end >Tutoriel Python >Comment générer des nombres aléatoires en Python dont la somme correspond à une valeur spécifique ?

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

DDD
DDDoriginal
2024-10-29 17:28:03467parcourir

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!

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