Maison > Article > développement back-end > Analyse du module aléatoire en Python (avec exemples)
random est un module permettant à Python de générer des nombres pseudo-aléatoires. La graine aléatoire est par défaut l'horloge système. Les méthodes du module sont analysées ci-dessous :
Il s'agit d'une fonction qui génère des nombres aléatoires entiers. Le paramètre start représente la valeur minimale et le. le paramètre stop représente la valeur maximale. , les valeurs aux deux extrémités peuvent être obtenues ; la complexité temporelle de l'algorithme de fonction
est : O(1)
Code source principal :
return self.randrange(a,b+1) #调用randrange函数来处理
Exemple :
import random for i in range(20): print(random.randint(0,10),end=' ')
Résultat :
1 1 7 5 10 1 4 1 0 8 7 7 2 10 6 8 6 0 3 1
est également un. fonction entière aléatoire avec paramètres optionnels
Lorsqu'il n'y a qu'un seul paramètre, la plage aléatoire par défaut est de 0 au paramètre, fermée à l'avant et ouverte à la fin
Quand il y a deux paramètres, il représente les valeurs minimum et maximum, fermé à l'avant Ouvert plus tard
Lorsqu'il y a trois paramètres, il représente le minimum valeur, valeur maximale et taille de pas, fermer d'abord et ouvrir plus tard
complexité temporelle de l'algorithme de fonction :O(1)
Code source principal :
return istart+istep*self._randbelow(n) #调用randbelow函数处理
Exemple :
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倍整数的随机数
Résultat :
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
Une fonction de sélection aléatoire, seq est une fonction non vide. ensemble, et un élément est sélectionné au hasard pour la sortie dans l'ensemble. Il n'y a pas de limite sur le type de l'élément.
Code source principal :
i=self._randbelow(len(seq)) #由randbelow函数得到随机地下标 return seq[i]
Responsabilité temporelle de l'algorithme de fonction : O(1)
Exemple :
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()Cette fonction forme n'importe quel nombre à virgule flottante de 0,0 à 1,0, fermé à gauche et ouvert à droite, sans paramètres. Exemple :
import random for j in range(5): print(random.random(),end=' ')Résultat d'exécution :
0.357486615834809 0.5928029747238529 0.37053940107869987 0.3802224543848519 0.97419909561617115.random.send(n=None)Une fonction qui peut correspondre. nombres aléatoires Une fonction pour initialiser le générateur, n représente une graine aléatoire ; lorsque n = Aucun, la graine aléatoire est l'heure du système, et lorsque n représente d'autres données, telles que int, str, etc., les données fournies sont utilisées comme la graine aléatoire et la séquence de nombres aléatoires générée est fixe. Instance :
import random random.seed("mark") for j in range(20):#无论启动多少次程序,输出的序列不变 print(random.randint(0,10),end=' ')Résultat :
4 1 10 5 6 2 8 5 5 10 7 2 9 6 2 6 0 5 10 106. random.getstate() et random.setstate(state) :getstate La fonction () est utilisée pour enregistrer l'état du générateur de nombres aléatoires et la fonction setstate(state) est utilisée pour restaurer le générateur au dernier état enregistré. Instance :
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=' ')#两次输出的结果一致Résultat :
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 27. random.shuffle(seq,random=None) :paire d'entrants La collection est mélangée. Il ne peut être utilisé que pour les séquences mutables, telles que les chaînes et les listes. Une erreur sera signalée pour les séquences immuables telles que les tuples utilisés pour sélectionner la méthode d'opération dans le désordre, telle que random=random. Code source principal :
for i in reversed(range(1,len(x))): j=randbelow(i+1) x[i],x[j]=x[k],x[i]Complexité temporelle de l'algorithme de fonction : O(n)Exemple :
import random lists=['mark','帅哥',18,[183,138]] print(lists) random.shuffle(lists,random=None) print(lists)Résultat :
['mark', '帅哥', 18, [183, 138]] ['帅哥', 18, 'mark', [183, 138]]8. random.sample(population,k):Le paramètre de population est une séquence, telle qu'une liste, un tuple, un ensemble, une chaîne, etc.; l'ensemble Les éléments forment une nouvelle séquence sans changer la séquence d'origine. Pire complexité temporelle : O(n*n) Exemple :
import random lists=['mark','帅哥',18,[183,138]] lists2=random.sample(lists,3) print(lists) print(lists2)Résultat :
['mark', '帅哥', 18, [183, 138]] ['mark', [183, 138], '帅哥']9. uniforme aléatoire (. a,b)Une fonction qui génère un nombre à virgule flottante entre les paramètres a et b. Si a>b, elle génère un nombre à virgule flottante entre b et a. Code source principal :
return a+(b-a)*self.random()Complexité temporelle : 0(1)Exemple :
import random for i in range(5): print(random.uniform(10,1))Résultat :
2.8826090956524606 1.5211191352548408 3.2397454278562794 4.147879756524251 6.532545391009419
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!