Es ist eine nutzlose Idee, die ich mir ausgedacht und implementiert habe, während ich verschiedene Sortieralgorithmen implementiert habe, während ich Python geübt habe, um die Zeit totzuschlagen.
Bei der Implementierung der Blasensortierung, der Sortierung zufällig generierter Daten und der Ermittlung der durchschnittlichen Häufigkeit denkt jeder natürlich, dass die Anzahl der Sortierungen auf einer einheitlichen Standardnormalverteilung basiert. Ich habe ein Programm erstellt, um Zufallszahlen basierend auf einer Standardnormalverteilung aus einheitlichen Zufallszahlen zu generieren.
Ist das Programm nützlich? ~~ Python-Vektor-Operation numpy
R = np.random.rand()
Zufallszahlen basierend auf der Standardnormalverteilung können ohne Verwendung generiert werden. ~~
Auch zufällig
#### **`random.normalvariate(mu, sigma)`**
```normalvariate(mu, sigma)
Mit können Sie Zufallszahlen basierend auf einer Normalverteilung generieren.
~~ Mit anderen Worten, es ist eine nutzlose Idee, Zufallszahlen basierend auf der Standardnormalverteilung zu generieren, ohne numpy in Python zu setzen. ~~
Nicht wirklich nützlich.
## Die folgenden Programme
```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 #Anzahl der Zufallszahlen für jede Blasensortierung
n = t*(t-1)/2 #Eine Standardnormalverteilung wird im Bereich von n erstellt
y = [0]*n #Speichert, wie oft zum Sortieren benötigt wurde, als jede Blasensortierung durchgeführt wurde
data = [] #T, um Daten jedes Mal zu sortieren
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[:] #Dateninitialisierung
plt.plot(y,marker="o")
plt.show()
Dieses Mal habe ich 100.000 Mal eine Liste mit 10 Zufallszahlen sortiert und gezählt, wie oft jede Sortierung als neu generierte Zufallszahl durchgeführt wurde, und ein Diagramm erstellt. Wie Sie in der Grafik sehen können, fühlt es sich wie eine Standardnormalverteilung an. Die maximale Anzahl von Sortierungen, wenn n Daten nach Blasensortierung sortiert werden, beträgt n (n-1) / 2, diesmal gibt es also 10 Arten von Daten, also 10 * (10-1) / 2 = Die Berechnung ist 45. Der Grund, warum es wie eine Standardnormalverteilung aussieht, wird als das Muster von Zufallszahlen angesehen, die zur Anzahl der Sorten gehören.
Es ist nur ein Selbstzufriedenheitsprogramm.