Wie bekomme ich eine Zufallszahl zwischen einem Float-Bereich?

Lesezeit: 1 Minute

Wie bekomme ich eine Zufallszahl zwischen einem Float Bereich
Mantis-Rodel

randrange(start, stop) akzeptiert nur ganzzahlige Argumente. Wie bekomme ich also eine Zufallszahl zwischen zwei Float-Werten?

  • Wenn Sie wollten, ist es numpy np.random.uniform(start, stop) oder np.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

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 Ausgabe N kann jedem Eingang entsprechen a und b. In diesem Fall 1.5 und 1.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 oder randrange?

    – 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 wird 1.9 (sogar in der Theorie).

    – Yonatan N

    29. März 2019 um 0:03 Uhr


  • @Musixauce3000 wie es scheint uniform(a, b) ist implementiert als a + (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

1647535569 216 Wie bekomme ich eine Zufallszahl zwischen einem Float Bereich
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.

Wie bekomme ich eine Zufallszahl zwischen einem Float Bereich
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.

1005070cookie-checkWie bekomme ich eine Zufallszahl zwischen einem Float-Bereich?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy