#Monte Carlo-Methode zum Ermitteln des Umfangsverhältnisses mit Python

zunaechst

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!

Der Code ist schrecklich

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()

1.png 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, x^2+y^2=r^2 Wenn die am Ende von Xlist und Ylist gespeicherten Zahlen vorerst quadriert und zum Quadrat des Radius oder weniger addiert werden, können Sie sehen, dass sich ein Punkt im Kreis befindet. Die obige if-Anweisung drückt dies als Formel aus. Da diese if-Anweisung zeigt, dass sich der Punkt innerhalb des Kreises befindet, addieren Sie 1 zu pi. Schließlich über den Block von ** if (i + 1)% 10 == 0: **. Hier wird das Umfangsverhältnis alle zehn Male berechnet und in pi_list gespeichert, und dann wird die Zahl hinzugefügt, um Number_list zu einer Spalte mit gleicher Differenzzahl zu machen.

plt.plot(Number_list,pi_list) plt.show() Dies ist ein Programm, das nur Diagramme erstellt, daher werde ich es nicht erklären (ausgeschnitten).

Am Ende

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

#Monte Carlo-Methode zum Ermitteln des Umfangsverhältnisses mit Python
Simulieren Sie die Monte-Carlo-Methode in Python
Mit Reiskörnern bestreuen, um das Umfangsverhältnis zu ermitteln (Monte-Carlo-Methode)
Finden Sie das Umfangsverhältnis mit einer dreizeiligen Funktion [Python / Monte-Carlo-Methode]
Monte-Carlo-Methode
Versuchen Sie, die Monte-Carlo-Methode in Python zu implementieren
Berechnung der kürzesten Route nach der Monte-Carlo-Methode
Ausgabe auf "7 Segment LED" mit Python mit Raspberry Pi 3!
Mit Python auf Twitter posten
Starten Sie mit Python zu Selen
Lassen Sie uns das Umfangsverhältnis mit Python finden
So installieren Sie Python mit Anaconda
Schätzung von π nach der Monte-Carlo-Methode
Python-Anfänger versuchten es herauszufinden
[Raspberry Pi] Python wurde standardmäßig in Python3 geändert
(Python) Erwarteter Wert ・ Ich habe versucht, die Monte-Carlo-Probenahme sorgfältig zu verstehen
Finden Sie das Verhältnis der Fläche des Biwa-Sees nach der Monte-Carlo-Methode
Von Python bis zur Verwendung von MeCab (und CaboCha)
Methode zum Erstellen einer Python-Umgebung in Xcode 6
[Einführung in die Udemy Python3 + -Anwendung] 25. Wörterbuchmethode
Einführung in die diskrete Ereignissimulation mit Python # 1
[Einführung in die Udemy Python3 + -Anwendung] 13. Zeichenmethode
Erkennen Sie "Helligkeit" mit Python auf Raspberry Pi 3!
Melden Sie sich mit Anforderungen in Python bei Slack an
Versuchen Sie, Excel mit Python (Xlwings) zu betreiben.
Lassen Sie einen Servomotor mit Python auf Raspberry Pi 3 laufen
Speichern Sie BigQuery-Tabellen mithilfe von Python in GCS
Einführung in die diskrete Ereignissimulation mit Python # 2
Ermitteln Sie die Temperatur mit Python auf Raspberry Pi 3!
[Einführung in die Udemy Python3 + -Anwendung] 29. Methode festlegen
[Circuit x Python] So ermitteln Sie die Übertragungsfunktion eines Schaltkreises mit Lcapy
Dominion-Kompressionsspiel nach Monte-Carlo-Methode analysiert
Vorgehensweise zur Verwendung der WEG-API von TeamGant (mit Python)
Erkennen Sie Schiebeschalter mit Python auf Raspberry Pi 3!
Einführung in 4 Möglichkeiten zur Überwachung von Python-Anwendungen mit Prometheus
Verwendung von Raspeye Pie Camera Python
Ich möchte mit Python eine E-Mail von Google Mail senden.
Ich habe versucht, das Umfangsverhältnis mit 100 Millionen Stellen zu ermitteln
Minimale Implementierung von Union Find in Python
Dynamisches Ersetzen der nächsten Methode in Python
Erkennen Sie Magnetschalter mit Python auf Raspberry Pi 3!
PRML Kapitel 11 Implementierung der Markov-Kette Monte Carlo Python
Lassen Sie den Summer mit Python auf Raspberry Pi 3 erklingen!
Konvertieren Sie STL mit Python VTK in ein Voxel-Netz
[Einführung in den Algorithmus] Finden Sie den kürzesten Weg [Python3]
Verbinden Sie Ihren Raspberry Pi mit Blynk mit Ihrem Smartphone
Stellen Sie mit Python auf Raspberry Pi eine Verbindung zu MySQL her
Starten Sie Python
Scraping mit Python
Johnson-Methode (Python)
[Python] Semi-Lagrange-Methode
"Backport" zu Python 2
Die erste Markov-Ketten-Monte-Carlo-Methode von PyStan
Vom Einrichten des Raspberry Pi bis zur Installation der Python-Umgebung
So richten Sie eine Python-Umgebung mit pyenv ein
Geschwindigkeitsvergleich jeder Sprache nach der Monte-Carlo-Methode
(Python) Versuchen Sie, eine Webanwendung mit Django zu entwickeln
So senden Sie Microsoft Forms automatisch mit Python (Mac-Version)
PUSH-Benachrichtigung von Python an Android mithilfe der Google-API