randrange(start, stop)
akzeptiert nur ganzzahlige Argumente. Wie bekomme ich also eine Zufallszahl zwischen zwei Float-Werten?
Wie bekomme ich eine Zufallszahl zwischen einem Float-Bereich?
Mantis-Rodel
Verwenden random.uniform(a, b):
>>> random.uniform(1.5, 1.9)
1.8733202628557872
-
könnte dies theoretisch 1,5 und 1,9 erzeugen? oder würde es immer nur 1,50 ~ 1 und 1,89 ~ produzieren?
– Musixauce3000
29. April 2016 um 13:39 Uhr
-
@Musixauce3000 Kurze Antwort: Ja. Längere Antwort: Wenn Sie sich die Dokumentation ansehen, heißt es
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 jedem Eingang entsprechena
undb
. In diesem Fall1.5
und1.9
.– Dan
1. März 2017 um 13:37 Uhr
-
Gibt es eine andere Möglichkeit, dies zu tun, ohne die
.uniform
Funktion, sondern mit entweder.random
oderrandrange
?– EnigmaTech
27. März 2019 um 10:12 Uhr
-
@DerryckDX
1.5 + random.random() * (1.9 - 1.5)
sollte es tun, obwohl dies laut den Spezifikationen niemals genau zurückkehren wird1.9
(sogar in der Theorie).– Yonatan N
29. März 2019 um 0:03 Uhr
-
@Musixauce3000 wie es scheint
uniform(a, b)
ist implementiert alsa + (b-a) * random()
und kehrt zurück eine Zufallszahl im Bereich [a, b) or [a, b] je nach Rundung github.com/python/cpython/blob/…– Pawel
4. Juni 2019 um 8:47 Uhr
Baurin Leza
Wenn Sie einen zufälligen Float mit N Ziffern rechts vom Punkt generieren möchten, können Sie Folgendes tun:
round(random.uniform(1,2), N)
Das zweite Argument ist die Anzahl der Dezimalstellen.
Garnertb
random.uniform(a, b)
scheint das zu sein, was du suchst. Aus den Dokumenten:
Gibt eine zufällige Gleitkommazahl N zurück, so dass a <= N <= b für a <= b und b <= N <= a für b < a.
Sehen Hier.
Am häufigsten verwenden Sie:
import random
random.uniform(a, b) # range [a, b) or [a, b] depending on floating-point rounding
Python bietet andere Distributionen wenn Sie brauchen.
Wenn Sie haben numpy
bereits importiert, können Sie das Äquivalent verwenden:
importiere numpy als np np.random.uniform(a, b) # Bereich [a, b)
Again, if you need another distribution, numpy
provides the same distributions as python, as well as many additional ones.
From my experience dealing with python, I can only say that the random function can help in generating random float numbers. Take the example below;
import random
# Random float number between range 15.5 to 80.5
print(random.uniform(15.5, 80.5))
# between 10 and 100
print(random.uniform(10, 100))
The random.uniform() function returns a random floating-point number between a given range in Python
The two sets of code generates random float numbers. You can try experimenting with it to give you what you want.
Wenn Sie wollten, ist es numpy
np.random.uniform(start, stop)
odernp.random.uniform(start, stop, samples)
wenn Sie mehrere Proben wollten. Andernfalls sind die folgenden Antworten am besten.– Sachinruk
4. Dezember 2019 um 0:33 Uhr