[PYTHON] Trouvez le ratio de la superficie du lac Biwa par la méthode de Monte Carlo

Discraimer Ce message contient un contenu aussi bon ou meilleur que le contenu technique que les citoyens de Shiga adorent dans la préfecture de Shiga. Si vous souhaitez lire des articles purement techniques, veuillez contacter les autres. Rien d'étonnant techniquement n'est arrivé.

Citoyens de Shiga

Bonjour. Je suis citoyen de la préfecture de Shiga. À quoi pensez-vous lorsque vous entendez le chiffre 1/6?

En fait, c'est le rapport entre la superficie du lac Biwa et la superficie totale de la préfecture de Shiga. Ce nombre est une valeur que tout le monde dans la préfecture qui est en cinquième année du primaire ou au-dessus devrait connaître, et une bonne proportion des citoyens de la préfecture le savent.

Car, dans la préfecture de Shiga, une entreprise appelée ** Floating School ** est en cours de développement, et les élèves de cinquième de la préfecture peuvent passer la nuit sur un bateau d'apprentissage flottant sur le lac Biwa (il se positionne comme une école préfectorale). Nous réaliserons des activités de formation notamment. Ce navire s'appelle ** Uminoko **, et en 2018, le navire qui était populaire depuis plus de 30 ans a pris sa retraite et est maintenant un nouveau navire qui a été renouvelé.

C'est une assez bonne expérience, c'est donc l'une des bonnes choses à propos des citoyens de Shiga.

Veuillez jeter un œil une fois. : https://uminoko.jp

En passant, il est intéressant que de nombreux élèves du primaire qui montent à bord de cet oursin disent qu'ils peuvent encore chanter la chanson "Ship of Hope" dont ils se souviennent avant la formation. Bien sûr, je suis l'un d'entre eux.

Sur ce bateau, les élèves des écoles élémentaires de la préfecture observeront le plancton, expérimenteront le travail de la corde et réaliseront des activités avec un cutter (petit bateau). Pour cette raison, je fais avant et après l'apprentissage de la mort, mais l'une des valeurs qui apparaît souvent est ce 1/6.

Récemment, Kokuyo a publié un ** Rokubunnoichi Nocho ** en réponse à cette reconnaissance de nom 1/6. Il utilise du papier produit à Yoshi sur la côte du lac Biwa, et c'est assez bon, alors achetez-le.

https://www.kokuyo-shop.jp/sp/ProductDetail.aspx?sku=4560107742501

Maintenant, passons au sujet principal.

Comme je l'ai expliqué jusqu'à présent, il est de 1/6, mais malheureusement, les habitants de Kyoto et d'Osaka le disent tous. ** "Shiga ou la moitié du lac Biwa?" **

Il est naturel de le penser. Ils ne voient probablement pas les forêts riches et vastes qui entourent le lac Biwa.

Cependant, nous ne pouvons pas l'accepter comme prévu.

Ainsi, les gens d'Osaka et de Kyoto peuvent le faire. Nous proposons plutôt une expérience de rapport de surface qui peut être effectuée n'importe où dans le monde.

Méthode de Monte Carlo

Si vous lisez cet article, vous le savez. C'est également une méthode très populaire pour trouver le rapport de circonférence. Lors du calcul du rapport de circonférence, ** le rapport de l'aire du cercle à contenir dans le carré **.

Oui, le rapport de la zone dans une certaine zone peut être calculé de manière probabiliste jusqu'à une certaine précision. Par conséquent, la superficie du lac Biwa dans la préfecture de Shiga est calculée par la méthode de Monte Carlo.

Obtenez la carte

Tout d'abord, préparez une carte qui servira de base pour déterminer la superficie du lac Biwa et la région de la préfecture de Shiga. C'est bien pour le moment.

https://www.freemap.jp/itemFreeDlPage.php?b=shiga&s=shiga 1.png

Traitement de la carte

Ensuite, coloriez la carte blanche. Il s'agit d'un processus qui permet au logiciel d'identifier la ** zone non-préfecture de Shiga ** ** la zone terrestre de la préfecture de Shiga ** ** la zone de Biwako de la préfecture de Shiga ** sur la carte. Veuillez le remplir de manière appropriée. Cette fois, j'ai utilisé Seashore pour ** rgb (255,38,0) «dans la zone terrestre de la préfecture de Shiga ** et» rgb (0,0,255) «dans la région du lac Biwa dans la préfecture de Shiga **. Je l'ai colorée.

map.png

Puyoguramingu

Fondamentalement, cela revient à trouver le rapport de circonférence, à définir un point aléatoire dans la zone (carré ou préfecture de Shiga) et à déterminer s'il se trouve dans la zone spécifiée (cercle ou lac Biwa) Répéter. Je ne pense pas que vous vous en souciez vraiment parce que c'est la même chose que ce que vous faites avec un cercle, mais ce dont vous devez vous inquiéter un peu, c'est que le dénominateur ** n'est pas le nombre d'époque. ** ** Divisez le nombre de ** entrés dans le lac Biwa ** par le nombre de ** entrés dans la préfecture de Shiga **. Il est coloré pour identifier cela. Comme vous le savez tous, les données de couleur d'une certaine coordonnée dans l'image peuvent être obtenues en accédant à l'adresse [y, x] du tableau qui apparaît par ʻimread` en utilisant OpenCV. Je ne pense pas qu'il y ait autre chose à craindre. Pour le moment, le nombre d'essais est fixé à 50 000.


import cv2
import numpy as np

print("Biwako Area inspector")
print("©︎ Yusei ito 2020")
print("=========================")


print("Importing image..")
img = cv2.imread('./map.png') #Processed map image file
height, width, channels = img.shape[:3]
print("Image Imported.")
print("\tWidth:"+str(width))
print("\tHeight:"+str(height))

count_max=50000
count_shiga=0
count_biwako=0

for i in range(0,count_max):
    px=img[np.random.randint(height),np.random.randint(width)]#Be attention. Array is formed as [y,x] and return is formed [blue,green,red]
    if (px[0]==0 and px[1]==38 and px[2]==255):
        count_shiga+=1
    if (px[0]==255 and px[1]==0 and px[2]==0):
        count_shiga+=1
        count_biwako+=1
    if (count_max%10==0):
        devisionBy=1 if count_shiga==0 else count_shiga
        print(str(i)+"\t"+str(count_biwako/devisionBy))


print("All Process succeed.\r\n\r\n")    
print("Attempt:"+str(count_max))
print("Shiga:"+str(count_shiga))
print("Biwako:"+str(count_biwako))

print("Overall Score:"+str(count_biwako/count_shiga))


Le résultat de l'exécution étant redondant, collez-le uniquement à la toute fin. Puisqu'il s'agit de Rokubunnoichi, la valeur attendue est 1/6 = 0,1666666 ....


Attempt:50000
Shiga:21143
Biwako:3493
Overall Score:0.16520834318687036

C'est bon. C'est plutôt bon.

C'est pourquoi la préfecture de Shiga est un bon endroit. Veuillez venir une fois.

Un ensemble complet d'articles sur cet article est résumé sur GitHub. Correspondance s'il vous plaît voir.

https://github.com/YuseiIto/Biwako_Rate

Recommended Posts

Trouvez le ratio de la superficie du lac Biwa par la méthode de Monte Carlo
Comparaison de vitesse de chaque langue par la méthode de Monte Carlo
Augmentez la vitesse de la méthode Monte Carlo de l'implémentation de découpage Cython.
Saupoudrer de grains de riz pour trouver le rapport de circonférence (méthode de Monte Carlo)
Estimation de π par la méthode de Monte Carlo
Trouvez l'aire de l'ensemble somme des rectangles qui se chevauchent
Je n'ai pas pu installer pypy3.6-7.3.1 avec macOS + pyenv, mais je pourrais installer pypy3.6-7.3.0. J'ai senti le vent du pypy par la méthode Monte Carlo.
Comment trouver la zone du diagramme de Boronoi
Jeu de compression Dominion analysé par la méthode de Monte Carlo
Méthode #Monte Carlo pour trouver le rapport de circonférence en utilisant Python
La méthode de copie de pandas.DataFrame est une copie profonde par défaut
Comprendre la méthode Metropolitan Hasting (une des méthodes de la méthode Monte Carlo en chaîne de Markov) avec implémentation
Trouver le diamètre du graphique par recherche de priorité de largeur (mémoire Python)
Introduction à la méthode Monte Carlo
[Calcul scientifique / technique par Python] Simulation de Monte Carlo par la méthode metropolis de la thermodynamique du système de spin ascendant 2D
Python: Trouvez l'épaisseur de plaque requise pour la pression limite de flambage du tube exposé par la méthode Brent
cv2.Canny (): Rend le réglage de la détection de bord par la méthode Canny agréable
Découvrez le changement mystérieux de la description du livre illustré Pokemon par Levenstein Distance
Trouvez la définition de la valeur de errno
Simuler la méthode Monte Carlo en Python
Représentez graphiquement le ratio de topcoder, Codeforces et TOEIC par note (Pandas + seaborn)
J'ai essayé de trouver l'itinéraire optimal du pays des rêves par recuit (quantique)
Trouvez la valeur minimale de la fonction par la méthode d'optimisation du groupe de particules (PSO)