2016-11-24 10 views
2

Wie würde ich Zufallszahlen auf 2 Dezimalstellen im Bereich (0, 0,1) generieren Mein Code erzeugt bisher Zahlen mit zwei Dezimalstellen im Bereich [0, 0,1]:Generieren von Zufallszahlen in einem bestimmten Bereich

radius = round(random.uniform(0, 0.1), 2) 
+0

Nicht sicher, was hier falsch ist. Was ist der Fehler dort? –

+2

@AliGajani Sie wollen 0,00 – Nayuki

+0

ausschließen Radius = rund (random.uniform (0,01, 0,1), 2) –

Antwort

7

Vielleicht ist der einfachste Weg, um Ihr Problem zu lösen, ist in Bezug auf ganze Zahlen zu denken, nicht-Gleitkommazahlen.

Sie wollen grundsätzlich möglich, Zufallszahl wie 0,01, 0,02, 0,03, ..., 0,09 , 0.10

Zuerst generieren Sie eine ganze Zahl zwischen 1 bis einschließlich 10, t Wenn Sie durch 100.0 teilen, erhalten Sie eine Gleitkommazahl.

Hier ist der Code:

x = random.randint(1, 10) 
y = x/100.0 

Dokumentation: random.randint(a, b)

+0

Vielen Dank viel für die Hilfe – Hello

+1

@Hello Sie sind herzlich willkommen! Das nächste Mal muss man nicht danken; einfach upvote und akzeptiere die Antwort – Nayuki

-1

Versuchen Zufallswert von max-Wert subtrahieren als uniform niedrig schließt, schließt aber hoch, dann werden Sie Werte 0-max ohne niedrig erhalten und einschließlich hoch:

radius = round(0.1-random.uniform(0, 0.1), 2) 
+0

Dies erzeugt immer noch die gleiche Verteilung und produziert immer noch 0,00 – Nayuki

Verwandte Themen