Dans cet article C'est un article qui explique le programme pour trouver le rapport de circonférence en utilisant la méthode de Monte Carlo écrite dans la tension de minuit telle qu'elle est en regardant la [Video] de Lambda (https://www.youtube.com/watch?v=Ymtb47ZfMgI). N'en attendez pas trop car c'est la tension de minuit!
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()
Qu'est-ce que ce n'est pas sale Cela fonctionne, mais le même processus est écrit plusieurs fois et c'est gênant, alors je l'ai réécrit le matin.
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()
C'est un peu mieux. Expliquons le code ligne par ligne.
import matplotlib.pyplot as plt
import random
Dans la première ligne, une bibliothèque appelée ** matplotlib **, qui est pratique pour dessiner des graphiques, est disponible sous le nom ** plt **. La deuxième ligne importe une bibliothèque qui peut générer des valeurs aléatoires appelées ** random **.
Xlist=[]
Ylist=[]
Number_list=[]
pi=0
pi_list=[]
Ici, les variables nécessaires au calcul des différents rapports de circonférence sont déclarées. Les coordonnées des points générés aléatoirement sont stockées dans ** Xlist et Ylist **, et il est déterminé si les points sont ou non à l'intérieur du cercle dans un calcul ultérieur. ** Number_list ** crée la colonne de nombre d'égalité requise pour la création du graphique. En fait, il est plus rapide de créer d'abord une séquence de nombres à différence égale en utilisant numpy, mais cette fois, il était difficile de trouver la méthode, alors je l'ai passée (Saborima). ** pi ** est utilisé pour enregistrer le nombre total de points tracés à l'intérieur du cercle, et ** pi_list ** est utilisé pour enregistrer le rapport de circonférence calculé au format liste.
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
Ici, le processus suivant est répété 15 000 fois en utilisant l'instruction for (si un humain le fait, il mourra).
Utilisez le module ramdom pour stocker les coordonnées de point dans ** Xlist et Ylist **.
Pour faciliter l'explication, je vais expliquer le bloc de ** if Xlist [i] ** 2 + Ylist [i] ** 2 <= 1: **.
Je ne vais pas expliquer l'explication ennuyeuse ici,
plt.plot(Number_list,pi_list) plt.show() C'est un programme qui ne crée que des graphiques, donc je ne vais pas l'expliquer (découpé).
Je ne pense pas que vous en ayez besoin, mais je l'ai fait PDF et j'ai résumé le contenu de cette fois. L'historique du programme est étonnamment court, alors n'hésitez pas à nous le faire savoir dans les commentaires si vous faites une erreur! !! S'il vous plaît laissez un commentaire si vous le souhaitez.
Recommended Posts