In diesem Artikel In diesem Artikel wird das Programm zum Ermitteln des Umfangsverhältnisses mithilfe der Monte-Carlo-Methode erläutert, die in der Mitternachtsspannung geschrieben wurde, indem Lambdas Video angesehen wird. Erwarten Sie nicht zu viel, denn es ist Mitternachtsspannung!
import matplotlib.pyplot as plt
import random
Xlist=[]
Ylist=[]
Number_list=[]
pi=0
pi_list=[]
for i in range(15000):
Xlist.append(random.uniform(0,1))
Ylist.append(random.uniform(0,1))
if (i+1)%10 == 0:
Number_list.append(i+1)
pi_list.append((pi/(i+1))*4)
if Xlist[i]**2+Ylist[i]**2 <= 1 and (i+1)%10 == 0:
Number_list.append(i+1)
pi_list.append((pi/(i+1))*4)
pi+=1
elif Xlist[i]**2+Ylist[i]**2 <= 1:
pi+=1
print((pi/(i+1))*4)
plt.plot(Number_list,pi_list)
plt.show()
Was das nicht schmutzig ist Es funktioniert, aber der gleiche Prozess wird oft geschrieben und ist umständlich, also habe ich ihn am Morgen neu geschrieben.
import matplotlib.pyplot as plt
import random
Xlist=[]
Ylist=[]
Number_list=[]
pi=0
pi_list=[]
for i in range(15000):
Xlist.append(random.uniform(0,1))
Ylist.append(random.uniform(0,1))
if (i+1)%10 == 0:
Number_list.append(i+1)
pi_list.append((pi/(i+1))*4)
if Xlist[i]**2+Ylist[i]**2 <= 1:
pi+=1
print((pi/(i+1))*4)
plt.plot(Number_list,pi_list)
plt.show()
Es ist ein bisschen besser. Lassen Sie uns den Code Zeile für Zeile erklären.
import matplotlib.pyplot as plt
import random
In der ersten Zeile steht unter dem Namen ** plt ** eine Bibliothek mit dem Namen ** matplotlib ** zur Verfügung, die zum Zeichnen von Diagrammen geeignet ist. Die zweite Zeile importiert eine Bibliothek, die Zufallswerte mit dem Namen ** random ** generieren kann.
Xlist=[]
Ylist=[]
Number_list=[]
pi=0
pi_list=[]
Hier werden die zur Berechnung der verschiedenen Umfangsverhältnisse notwendigen Variablen deklariert. Die Koordinaten zufällig generierter Punkte werden in ** Xlist und Ylist ** gespeichert, und in einer späteren Berechnung wird bestimmt, ob sich die Punkte innerhalb des Kreises befinden oder nicht. ** Number_list ** erstellt die für die Diagrammerstellung erforderliche Gleichheitsnummernspalte. Eigentlich ist es schneller, zuerst mit numpy die gleiche Differenzzahlfolge zu erstellen, aber diesmal war es schwierig, die Methode herauszufinden, also habe ich sie bestanden (Sabori Ma). ** pi ** wird verwendet, um die Gesamtzahl der im Kreis gezeichneten Punkte zu speichern, und ** pi_list ** wird verwendet, um das berechnete Umfangsverhältnis im Listenformat zu speichern.
for i in range(15000):
Xlist.append(random.uniform(0,1))
Ylist.append(random.uniform(0,1))
if (i+1)%10 == 0:
Number_list.append(i+1)
pi_list.append((pi/(i+1))*4)
if Xlist[i]**2+Ylist[i]**2 <= 1:
pi+=1
Hier wird mit der for-Anweisung der folgende Vorgang 15.000 Mal wiederholt (wenn ein Mensch dies tut, stirbt er).
Verwenden Sie das Ramdom-Modul, um Punktkoordinaten in ** Xlist und Ylist ** zu speichern.
Zur Vereinfachung der Erklärung werde ich den Block von ** erklären, wenn Xlist [i] ** 2 + Ylist [i] ** 2 <= 1: **.
Ich werde die nervige Erklärung hier nicht erklären,
plt.plot(Number_list,pi_list) plt.show() Dies ist ein Programm, das nur Diagramme erstellt, daher werde ich es nicht erklären (ausgeschnitten).
Ich glaube nicht, dass Sie es brauchen, aber ich habe es PDF erstellt und den Inhalt dieser Zeit zusammengefasst. Die Programmhistorie ist überraschend kurz. Wenn Sie einen Fehler machen, teilen Sie uns dies bitte in den Kommentaren mit! !! Bitte hinterlassen Sie einen Kommentar, wenn Sie möchten.
Recommended Posts