Heim > Artikel > Backend-Entwicklung > Analyse des Zufallsmoduls in Python (mit Beispielen)
Random ist ein Modul für Python zum Generieren von Pseudozufallszahlen. Der Zufallsstartwert ist standardmäßig die Systemuhr. Die Methoden im Modul werden unten analysiert:
Dies ist eine Funktion, die ganzzahlige Zufallszahlen generiert Der Parameter Stop stellt den Maximalwert dar. Die Zeitkomplexität des
-Funktionsalgorithmus beträgt: O(1)
Kernquellcode:
return self.randrange(a,b+1) #调用randrange函数来处理
Beispiel:
import random for i in range(20): print(random.randint(0,10),end=' ')
Ergebnis:
1 1 7 5 10 1 4 1 0 8 7 7 2 10 6 8 6 0 3 1
ist ebenfalls eine zufällige Ganzzahlfunktion mit optionalen Parametern
Nur wenn ein Parameter vorhanden ist, reicht der standardmäßige Zufallsbereich von 0 bis zu diesem Parameter. Er wird zuerst geschlossen und dann geöffnet, wenn zwei Parameter vorhanden sind. Zuerst geschlossen und später geöffnet 🎜>
Kernquellcode:
return istart+istep*self._randbelow(n) #调用randbelow函数处理
import random for i in range(10): print(random.randrange(10),end=' ') #产生0到10(不包括10)的随机数 print("") for i in range(10): print(random.randrange(5,10),end=' ') #产生5到10(不包括10)的随机数 print("") for i in range(10): print(random.randrange(5,100,5),end=' ') #产生5到100(不包括100)范围内的5倍整数的随机数
Ergebnis:
1 1 2 4 4 3 4 6 1 4 6 6 5 7 8 9 6 6 6 5 30 50 20 40 75 85 25 65 80 95
3. random.choice(seq)
Eine zufällige Auswahlfunktion, seq ist eine nicht leere Menge, wählt zufällig ein Element in der Menge für die Ausgabe aus und der Elementtyp ist nicht begrenzt.
Kernquellcode:
i=self._randbelow(len(seq)) #由randbelow函数得到随机地下标 return seq[i]
Beispiel:
import random list3=["mark","帅",18,[183,138]] for j in range(10): print(random.choice(list3),end=' ')
Code:
mark 帅 [183, 138] 18 mark 18 mark 帅 帅 [183, 138]
4. random.random()
Diese Funktion bildet eine beliebige Gleitkommazahl von 0,0 bis 1,0, links geschlossen und rechts offen, ohne Parameter.
Instanz:
import random for j in range(5): print(random.random(),end=' ')
0.357486615834809 0.5928029747238529 0.37053940107869987 0.3802224543848519 0.9741990956161711
5. random.send(n=None)
Man kann die Zufallszahlengeneratorfunktion initialisieren, n stellt einen Zufallsstartwert dar; wenn n = Keine, ist der Zufallsstartwert die Systemzeit. Wenn n andere Daten wie int, str usw. sind, werden die bereitgestellten Daten als Zufallszahlenfolge verwendet Dieses Mal steht fest.
Instanz:
import random random.seed("mark") for j in range(20):#无论启动多少次程序,输出的序列不变 print(random.randint(0,10),end=' ')
4 1 10 5 6 2 8 5 5 10 7 2 9 6 2 6 0 5 10 10
6. random.getstate() und random.setstate(state):
getstate() Funktion Zu Zeichnen Sie den Zustand des Zufallszahlengenerators auf. Die Funktion setstate(state) wird verwendet, um den Generator auf den zuletzt aufgezeichneten Zustand zurückzusetzen.
Instanz:
import random tuple1=random.getstate()#记录生成器的状态 for i in range(20): print(random.randint(0,10),end=' ') print() random.setstate(tuple1)#传入参数回复之间的状态 for i in range(20): print(random.randint(0,10),end=' ')#两次输出的结果一致
5 7 9 9 10 10 2 3 7 1 1 6 1 7 1 1 7 4 2 2 5 7 9 9 10 10 2 3 7 1 1 6 1 7 1 1 7 4 2 2
7. random.shuffle(seq,random=None):
Mischen Sie den eingehenden Erfassungssequenzvorgang. Es kann nur für veränderliche Sequenzen wie Zeichenfolgen und Listen verwendet werden. Bei unveränderlichen Sequenzen wie Tupeln wird ein Fehler gemeldet, um die Operationsmethode außerhalb der Reihenfolge auszuwählen, z. B. random = random.
Kernquellcode:
for i in reversed(range(1,len(x))): j=randbelow(i+1) x[i],x[j]=x[k],x[i]
Beispiel:
import random lists=['mark','帅哥',18,[183,138]] print(lists) random.shuffle(lists,random=None) print(lists)
Ergebnis:
['mark', '帅哥', 18, [183, 138]] ['帅哥', 18, 'mark', [183, 138]]
8. random.sample(population,k):
Der Populationsparameter ist eine Sequenz, z. B. eine Liste, ein Tupel, eine Menge, eine Zeichenfolge usw.; k Elemente werden zufällig aus der Menge ausgewählt, um a zu bilden Neue Sequenz. Die ursprüngliche Sequenz wird nicht geändert.
Schlechteste Zeitkomplexität: O(n*n)
import random lists=['mark','帅哥',18,[183,138]] lists2=random.sample(lists,3) print(lists) print(lists2)
Ergebnis:
['mark', '帅哥', 18, [183, 138]] ['mark', [183, 138], '帅哥']
9. random.uniform(a, b)
Eine Funktion, die eine Gleitkommazahl zwischen den Parametern a und b generiert. Wenn a>b, generiert sie eine Gleitkommazahl zwischen b und a.
Kernquellcode:
return a+(b-a)*self.random()
Beispiel:
import random for i in range(5): print(random.uniform(10,1))
Ergebnis:
2.8826090956524606 1.5211191352548408 3.2397454278562794 4.147879756524251 6.532545391009419
Das obige ist der detaillierte Inhalt vonAnalyse des Zufallsmoduls in Python (mit Beispielen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!