generieren zufällige Nummern mit einer festen Summe
Die Herausforderung besteht darin, eine Reihe von Pseudo-Random-Zahlen zu generieren, deren Sum einen vordefinierten Wert entspricht. Insbesondere wie man vier Zahlen generiert, die, wenn sie zusammengefügt wurden, gleich 40.
anstatt sich auf eine Methode zu verlassen, die die Verteilung der ersten Zahl verzerren könnte, wird ein einheitlicherer Ansatz verwendet. Die Lösung verwendet eine Strategie zur Aufteilung des vordefinierten Werts in kleinere Segmente unter Verwendung zufällig ausgewählter Trenner.
Angenommen, wir haben vier zufällige positive ganze Zahlen (e, f, g und h), so dass 0
A = E
abgeben können. f import random
def constrained_sum_sample_pos(n, total):
"""Return a randomly chosen list of n positive integers summing to total.
Each such list is equally likely to occur."""
dividers = sorted(random.sample(range(1, total), n - 1))
return [a - b for a, b in zip(dividers [total], [0] dividers)]
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3