[JAVA] J'ai essayé d'illuminer le sapin de Noël dans un jeu de la vie

1.Tout d'abord

J'ai peur d'avoir déménagé récemment Même si c'était juste avant Noël, j'étais seul dans une pièce trouble.

** "OK, faisons et décorons un sapin de Noël" **

Cependant, si je venais d'acheter un arbre disponible dans le commerce et de le décorer ... il serait écrasé par la solitude.

«N'est-il pas intéressant de faire des illuminations d'arbres de Noël avec ** Cell Automaton **?

J'ai eu l'idée. C'est pourquoi j'ai essayé de faire briller le sapin de Noël (quelque chose comme) selon les règles du jeu de la vie.

** Les résultats sont en bas, donc si vous n'êtes pas intéressé par le contenu, cliquez sur Ignorer. ** **

2. Qu'est-ce que Cell Automaton?

C'est l'un des modèles de calcul discrets.

Donnez à chacune des cellules en forme de grille un état "vivant" ou "mort". Sur la base de l'état actuel de la cellule, l'état de la cellule suivante est calculé, et ceci est répété pour observer l'état de la cellule entière disposée dans un modèle de grille. cell.png

Exemple de simulation

Puisqu'il est appliqué à diverses simulations, je vais en présenter quelques-unes.

La simulation mathématique a l'image de la construction d'équations différentielles compliquées et d'équations intégrales, L'automate cellulaire est une règle très simple, et je pense que c'est relativement facile à comprendre car on peut observer des comportements compliqués et intéressants.

Automate cellulaire et chaos

Vous pouvez également observer un comportement chaotique dans l'automate cellulaire. Comme mentionné ci-dessus, la capacité à reproduire un comportement chaotique, malgré le fait que la configuration de simulation elle-même soit très simple, est l'un des facteurs qui a attiré l'attention des automates cellulaires.

À propos, comme exemple d'application du chaos, comment faire briller les illuminations de Noël et la fluctuation réaliste de la chandelle ont déjà été étudiées.

J'ai entendu dire que certaines personnes gagnaient beaucoup d'argent en l'appliquant aux prévisions de cours des actions.

3. Qu'est-ce qu'un jeu de la vie?

Une simulation de la naissance et de la mort de la vie, conçue par le mathématicien britannique Conway.

(Source)

règle

L'automate de cellule a écrit: "Calculez l'état de la cellule suivante en fonction de l'état de la cellule actuelle." Les règles du «calcul» dans les jeux de la vie sont très simples.

[(Cité de wikipedia)](https://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%A4%E3%83%95%E3%82%B2%E3%83%BC % E3% 83% A0)

C'est tout. C'est un modèle de processus tels que la sélection et l'évolution des êtres vivants avec des règles très simples. Pourquoi vous comportez-vous de manière amusante?

Pour le jeu de la vie, je me suis référé à cet article. "Créer un jeu de la vie avec Java"

4. Qu'est-il arrivé

lifegame.gif Plage de simulation: partie feuille Survie: jaune Mort: vert État initial: un nombre aléatoire uniforme est attribué à chaque cellule et il y a 30% de chances de survie. Nombre de répétitions: 5000 fois (l'image est coupée au milieu car elle a convergé) Nombre d'essais: jusqu'à ce qu'un mouvement intéressant apparaisse

Le programme a été écrit en Java. Swing est utilisé pour le traitement du dessin. ↓ Cliquez ici pour la source (Ce n'est pas beau, alors n'ayez pas peur ...) https://github.com/tf-tky/XmasLifeGame

Ce que je pensais

――Le dessus ne brille pas sauf dans l'état initial (il ne brille pas) ――Le nombre de cellules diminue à mesure que vous vous rendez au sommet de l'arbre, il peut donc disparaître bientôt (ce n'était pas le cas) ――Je me demande s'il vaut mieux ajouter une règle avec un caractère aléatoire pour que cela ressemble à un éclairage (je l'ai essayé mais ce n'était pas bon)

5. Conclusion

«La convergence finale est douloureuse. 』\

Recommended Posts

J'ai essayé d'illuminer le sapin de Noël dans un jeu de la vie
J'ai essayé d'organiser la session en Rails
J'ai essayé de créer une compétence Clova en Java
J'ai essayé de créer une fonction de connexion avec Java
J'ai essayé d'implémenter la méthode de division mutuelle d'Eugrid en Java
J'ai essayé de convertir une chaîne de caractères en un type LocalDate en Java
J'ai essayé d'implémenter une application web pleine de bugs avec Kotlin
J'ai créé un client RESAS-API en Java
J'ai essayé d'expliquer la méthode
[Java] J'ai essayé de créer un jeu Janken que les débutants peuvent exécuter sur la console
J'ai essayé de créer une application cartographique simple dans Android Studio
Tri des données Décroissant, croissant / Rails
J'ai essayé d'écrire du code comme une déclaration de type en Ruby
[Java] J'ai essayé de faire un labyrinthe par la méthode de creusage ♪
J'ai essayé un problème de calendrier avec Ruby
J'ai essayé de résumer les méthodes utilisées
La route pour créer un jeu sonore 2
J'ai essayé le nouveau yuan à Java
J'ai essayé d'implémenter le modèle Iterator
J'ai essayé de résumer l'API Stream
J'ai essayé la bibliothèque AutoValue avec Intellij
La route pour créer un jeu sonore 3
La route pour créer un jeu sonore 1
J'ai essayé d'incorporer une formule dans Javadoc
C'était une vie que je voulais réinitialiser le compteur associatif thread-safe
J'ai essayé de résoudre le problème de la séquence Tribonacci en Ruby, avec récurrence.
J'ai essayé d'utiliser pleinement le cœur du processeur avec Ruby
J'ai essayé de créer une application de conversation en Java à l'aide de l'IA «A3RT»
[Ruby] J'ai essayé de résumer les méthodes fréquentes dans paiza
[Ruby] J'ai essayé de résumer les méthodes fréquentes avec paiza ②
J'ai essayé de créer un exemple de programme en utilisant le problème du spécialiste des bases de données dans la conception pilotée par domaine
J'ai essayé d'implémenter des relations polymorphes à Nogizaka.
[Rails] J'ai essayé de faire passer la version de Rails de 5.0 à 5.2
java j'ai essayé de casser un simple bloc
J'ai essayé de développer un outil de gestion des effectifs
J'ai essayé de développer un site Web pour étudier DUO3.0.
Je voulais que (a == 1 && a == 2 && a == 3) vrai en Java
J'ai créé un jeu Janken en Java (CLI)
J'ai essayé de créer une application de clonage LINE
J'ai essayé de sortir quatre-vingt-dix-neuf en Java
J'ai essayé de configurer tomcat pour exécuter le servlet.
J'ai essayé de développer une application en 2 langues
J'ai essayé de créer une compétence Alexa avec Java
J'ai essayé de développer un site Web pour enregistrer les dépenses.
J'ai essayé d'implémenter un serveur en utilisant Netty
J'ai essayé de casser le bloc avec java (1)
Je veux obtenir la valeur en Ruby
J'ai essayé de mettre facilement CentOS-7 dans un PC dont je n'ai plus besoin
Ce que j'ai essayé quand je voulais obtenir tous les champs d'un haricot
J'ai essayé de résoudre le problème de la séquence Tribonacci en Ruby (temps limite 10 minutes)
J'ai essayé de faire un jeu simple avec Javafx ① "Trouvons le jeu du bonheur" (inachevé)
[Petite histoire] J'ai essayé de rendre java ArrayList un peu plus pratique
J'étais accro à NoSuchMethodError dans Cloud Endpoints