C'est une idée inutile que j'ai imaginée et mise en œuvre tout en implémentant divers algorithmes de tri tout en pratiquant python pour tuer le temps.
Lors de la mise en œuvre du tri par bulles, du tri des données générées aléatoirement et de la recherche du nombre moyen de fois, tout le monde pense naturellement que le nombre de tris est basé sur une distribution normale standard uniforme. J'ai créé un programme pour générer des nombres aléatoires basé sur une distribution normale standard à partir de nombres aléatoires uniformes.
Le programme est-il utile? ~~ opération vectorielle python numpy
R = np.random.rand()
Des nombres aléatoires basés sur une distribution normale standard peuvent être générés sans utiliser. ~~
Même aléatoire
#### **`random.normalvariate(mu, sigma)`**
```normalvariate(mu, sigma)
Vous pouvez générer des nombres aléatoires basés sur une distribution normale en utilisant.
~~ En d'autres termes, c'est une idée inutile qui peut générer des nombres aléatoires basés sur la distribution normale standard sans mettre numpy en python. ~~
Pas vraiment utile.
## Le programme suivant
```python
# -*- coding: utf-8 -*-
import random
import matplotlib.pyplot as plt
def bubble_sort(data,data_num):
count = 0
for i in range(0,data_num):
for j in range(data_num-1,i,-1):
if data[j] <= data[j-1]:
count += 1
data[j] , data[j-1] = data[j-1] , data[j]
return count
if __name__ == '__main__':
t = 10 #Nombre de nombres aléatoires pour effectuer chaque tri de bulles
n = t*(t-1)/2 #Une distribution normale standard est créée dans la plage de n
y = [0]*n #Stocke le nombre de fois qu'il a fallu pour trier lorsque chaque tri à bulles a été effectué
data = [] #T pour trier les données à chaque fois
for j in range(0,100000):
count = 0
for i in range(0,t):
data.append(random.randint(1,100))
count = bubble_sort(data,t)
y[count] = y[count] + 1
del data[:] #Initialisation des données
plt.plot(y,marker="o")
plt.show()
Cette fois, j'ai trié une liste de 10 nombres aléatoires 100 000 fois et compté le nombre de fois que chaque tri a été effectué comme un nombre aléatoire nouvellement généré et j'ai fait un graphique. Comme vous pouvez le voir sur le graphique, cela ressemble à une distribution normale standard. Le nombre maximum de tris lorsque n éléments de données sont triés par tri à bulles est n (n-1) / 2, donc cette fois il y a 10 sortes de données, donc 10 * (10-1) / 2 = Le calcul est de 45. On pense que la raison pour laquelle cela ressemble à une distribution normale standard est le modèle de nombres aléatoires appartenant au nombre de sortes.
C'est juste un programme d'auto-satisfaction.
Recommended Posts