Was ist der Unterschied zwischen random.uniform () und random.random () in python?

7

Was ist der Unterschied zwischen random.uniform() und random.random() in python für das zufällige Modul? Sie erzeugen beide Pseudozufallszahlen, random.uniform() erzeugt Zahlen aus einer einheitlichen Verteilung und random.random() erzeugt die nächste Zufallszahl. Was ist der Unterschied?

    
NKCP 04.05.2015, 12:51
quelle

4 Antworten

20

random.random() gibt Ihnen eine zufällige Gleitkommazahl im Bereich [0.0, 1.0) (also einschließlich 0.0 , aber nicht 1.0 , was auch als halboffener Bereich bekannt ist). random.uniform(a, b) gibt dir eine zufällige Gleitkommazahl im Bereich [a, b] , (wobei das Runden möglicherweise zu b führt).

Die Implementierung von random.uniform() verwendet random.random() direkt:

%Vor%

random.uniform(0, 1) ist im Grunde das gleiche wie random.random() (als 1.0 mal Gleitkommawert, der am nächsten zu 1.0 liegt, gibt Ihnen immer noch Gleitkommawert am nächsten zu 1.0 dort besteht keine Möglichkeit eines Rundungsfehlers).

    
Martijn Pieters 04.05.2015 12:58
quelle
3

Der Unterschied liegt in den Argumenten. Es ist sehr üblich, eine Zufallszahl aus einer gleichmäßigen Verteilung im Bereich [0.0, 1.0] zu generieren, also random.random() macht das einfach. Verwenden Sie random.uniform(a, b) , um einen anderen Bereich anzugeben.

    
Bill the Lizard 04.05.2015 12:57
quelle
3

In random.random () liegt die Ausgabe zwischen 0 & amp; 1, und es dauert keine Eingabeparameter

Während random.uniform () Parameter verwendet, können Sie den Bereich der Zufallszahl angeben. Zum Beispiel
import random as ra print ra.random() print ra.uniform(5,10)

AUSGABE: -
0.672485369423 7.9237539416

    
Saurabh Adhikary 15.11.2016 09:34
quelle
1

Laut der Dokumentation zu random.uniform :

  

Gebe eine zufällige Gleitkommazahl N zurück, so dass ein & lt; = N & lt; = b für a & lt; = b und b & lt; = N & lt; = a für b & lt; a.

während random.random :

  

Gibt die nächste zufällige Gleitkommazahl im Bereich [0.0, 1.0] zurück.

i.e. Mit random.uniform geben Sie einen Bereich an, in dem Sie Pseudozufallszahlen aus z. zwischen 3 und 10. Mit random.random erhalten Sie eine Zahl zwischen 0 und 1.

    
RickardSjogren 04.05.2015 12:57
quelle

Tags und Links