randrange(start, stop)
Nimmt nur ganzzahlige Argumente an. Wie würde ich also eine Zufallszahl zwischen zwei Gleitkommawerten erhalten?
python
random
floating-point
Mantis Toboggan
quelle
quelle
np.random.uniform(start, stop)
odernp.random.uniform(start, stop, samples)
wenn Sie mehrere Proben wollten. Ansonsten sind die folgenden Antworten am besten.Antworten:
Verwenden Sie random.uniform (a, b) :
quelle
Returns a random floating point number N such that a <= N <= b for a <= b and b <= N <= a for b < a
Mit anderen Worten, die AusgabeN
kann entweder der Eingabea
oder entsprechenb
. In diesem Fall1.5
und1.9
..uniform
Funktion zu verwenden, sondern mit entweder.random
oderrandrange
?1.5 + random.random() * (1.9 - 1.5)
sollte es tun, obwohl dies gemäß den Spezifikationen niemals genau zurückkehren wird1.9
(auch nicht in der Theorie).uniform(a, b)
implementiert zu seina + (b-a) * random()
und gibt eine Zufallszahl im Bereich [a, b) oder [a, b] zurück, abhängig von der Rundung github.com/python/cpython/blob/…random.uniform(a, b)
scheint das zu sein, wonach du suchst. Aus den Dokumenten:Siehe hier .
quelle
Wenn Sie einen zufälligen Float mit N Ziffern rechts vom Punkt generieren möchten, können Sie Folgendes tun:
Das zweite Argument ist die Anzahl der Dezimalstellen.
quelle
Am häufigsten würden Sie verwenden:
Python bietet bei Bedarf weitere Distributionen .
Wenn Sie bereits
numpy
importiert haben , können Sie das entsprechende verwenden:Wenn Sie eine andere Distribution benötigen,
numpy
bieten Sie dieselben Distributionen wie Python sowie viele zusätzliche Distributionen .quelle