[PYTHON] Simulation simple de l'infection virale

introduction

L'article suivant a été publié dans le Washington Post le 14 mars 2020.

La version japonaise est ci-dessous.

*** Pourquoi des épidémies telles que le coronavirus peuvent se propager rapidement et comment peuvent-elles "aplatir la courbe" ***
https://www.washingtonpost.com/graphics/2020/health/corona-simulation-japanese/

En utilisant le principe simple du contact balle-à-balle, Un article qui présente comment le nombre de personnes infectées par le virus augmente et diminue. Je pense que c'était très facile à comprendre.

D'ailleurs, certaines personnes l'ont reproduit en Python (Jupyter Lab).

*** J'ai créé COVID19_simulator avec JupyterLab ***
https://qiita.com/yasubei/items/ca48528daac456e339d3

je l'ai fait moi-même

Au fait, je suis ...

Je voulais manipuler divers paramètres et me simuler, donc Pour rendre le processus plus léger, ignorez le rebond lorsque les balles entrent en collision et considérez le chevauchement des balles comme une infection.

*** J'ai créé la version Python (en utilisant le module pygame) *** et *** la version HTML et JavaScript ***.

Les deux sont fondamentalement le même processus, mais il existe des différences dans le mécanisme de dessin, donc La version JavaScript, qui fonctionne sur un navigateur Web, est considérablement plus rapide que la version Python.

Puisque la position initiale et la quantité de mouvement de la balle sont déterminées à l'aide de nombres aléatoires, le résultat de l'exécution changera à chaque fois. Quant à la première balle infectée, une seule de toutes les balles placées à l'extrême gauche est sélectionnée.

Avec le paramètre par défaut (300 balles) La version Python convergera dans environ 10 à 15 secondes, et la version JavaScript convergera dans environ 5 à 10 secondes.

Un mouvement et un tirage de toutes les balles s'appelle un tour.

Etc. peut être librement spécifié.

Pendant l'exécution

S'affiche en bas de l'écran, Le graphique montrant la transition du nombre de balles infectées et du nombre de balles récupérées est Il est affiché en temps réel.

Si vous voulez voir le mouvement lentement, essayez d'augmenter le poids de l'affichage.

Même dans les mêmes conditions, le résultat sera différent à chaque fois. Il peut être intéressant de répéter l'exécution plusieurs fois et de vérifier le rapport d'apparence du graphique dessiné.

Demo

La version HTML et JavaScript est également placée à l'URL suivante, et n'importe qui peut l'exécuter. C'est une bonne idée de jouer avec différents paramètres. (Il peut également être exécuté à partir d'un smartphone.)

ScreenShot.png

2020/04/25 postscript

*** IHASHI28 Educational ch. *** a également présenté un exemple de résultats de simulation.

Recommended Posts

Simulation simple de l'infection virale
Simulation de comp gacha
Un simple exemple de pivot_table.
Mesure FPS simple de python
Simulation du contenu du portefeuille
Mise en place d'un filtre à particules simple
Explication et mise en œuvre du perceptron simple