[JAVA] Ich habe versucht, den Weihnachtsbaum in einem Lebensspiel zu beleuchten

1. Zuallererst

Ich fürchte, ich bin kürzlich umgezogen Obwohl es kurz vor Weihnachten war, war ich allein in einem trüben Raum.

** "Okay, lass uns einen Weihnachtsbaum machen und schmücken" **

Wenn ich jedoch nur einen handelsüblichen Baum kaufen und ihn schmücken würde, würde er von der Einsamkeit zerquetscht.

"Ist es nicht interessant, Weihnachtsbaumbeleuchtungen mit ** Cell Automaton ** zu machen?"

Ich kam auf die Idee. Deshalb habe ich versucht, den Weihnachtsbaum (so etwas wie) nach den Regeln des Lebensspiels zum Leuchten zu bringen.

** Die Ergebnisse befinden sich unten. Wenn Sie also nicht an den Inhalten interessiert sind, klicken Sie auf Überspringen. ** ** **

2. Was ist ein Zellautomat?

Es ist eines der diskreten Berechnungsmodelle.

Geben Sie jeder der gitterartigen Zellen einen "lebenden" oder "toten" Zustand. Basierend auf dem aktuellen Zellenzustand wird der Zustand der nächsten Zelle berechnet und dies wird wiederholt, um den Zustand der gesamten Zelle zu beobachten, der in einem Gittermuster angeordnet ist. cell.png

Simulationsbeispiel

Da es auf verschiedene Simulationen angewendet wird, werde ich einige davon vorstellen.

Die mathematische Simulation hat das Bild, komplizierte Differentialgleichungen und Integralgleichungen zu konstruieren. Cell Automaton ist eine sehr einfache Regel, und ich denke, es ist relativ einfach, damit auszukommen, da Sie kompliziertes und interessantes Verhalten beobachten können.

Zellautomat und Chaos

Sie können auch chaotisches Verhalten im Zellautomaten beobachten. Wie oben erwähnt, ist die Fähigkeit, chaotisches Verhalten zu reproduzieren, obwohl die Simulationskonfiguration selbst sehr einfach ist, einer der Faktoren, die die Aufmerksamkeit der Zellautomaten auf sich gezogen haben.

Als Anwendungsbeispiel für Chaos wurde übrigens bereits untersucht, wie man die Weihnachtsbeleuchtung zum Leuchten bringt und wie realistisch das Kerzenlicht schwankt.

Ich habe gehört, dass es einige Leute gab, die viel Geld verdient haben, indem sie es auf Aktienkursprognosen angewendet haben.

3. Was ist ein Lebensspiel?

Eine Simulation der Geburt und des Todes des Lebens, die vom britischen Mathematiker Conway entwickelt wurde.

(Quelle)

Regel

Der Zellenautomat schrieb: "Berechnen Sie den Status der nächsten Zelle basierend auf dem Status der aktuellen Zelle." Die Regeln der "Berechnung" in Lebensspielen sind sehr einfach.

[(Zitiert aus Wikipedia)](https://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%A4%E3%83%95%E3%82%B2%E3%83%BC % E3% 83% A0)

Das ist es. Es ist ein Modell für Prozesse wie Auswahl und Entwicklung von Lebewesen mit sehr einfachen Regeln. Warum benimmst du dich lustig?

Für das Lebensspiel habe ich auf diesen Artikel verwiesen. "Mit Java ein Lebensspiel machen"

4. Was ist passiert?

lifegame.gif Simulationsbereich: Blattteil Überleben: gelb Tod: grün Ausgangszustand: Jeder Zelle wird eine einheitliche Zufallszahl zugewiesen, und die Überlebenschance beträgt 30%. Anzahl der Wiederholungen: 5000 Mal (Das Bild wird in der Mitte abgeschnitten, weil es konvergiert hat) Anzahl der Versuche: Bis ein interessanter Zug erscheint

Das Programm wurde in Java geschrieben. Swing wird für die Zeichenverarbeitung verwendet. ↓ Klicken Sie hier für die Quelle (Es ist nicht schön, also keine Angst ...) https://github.com/tf-tky/XmasLifeGame

Was ich dachte

――Die Oberseite leuchtet nur im Ausgangszustand (sie leuchtet nicht) ――Die Anzahl der Zellen nimmt ab, wenn Sie an die Spitze des Baums gehen, sodass er möglicherweise bald verschwindet (war es nicht). ――Ich frage mich, ob es besser ist, eine zufällige Regel hinzuzufügen, damit sie wie eine Beleuchtung aussieht (ich habe es versucht, aber es war nicht gut).

5. Schlussfolgerung

"Die endgültige Konvergenz ist schmerzhaft. 』\

Recommended Posts

Ich habe versucht, den Weihnachtsbaum in einem Lebensspiel zu beleuchten
Ich habe versucht, die Sitzung in Rails zu organisieren
Ich habe versucht, eine Clova-Fähigkeit in Java zu erstellen
Ich habe versucht, eine Anmeldefunktion mit Java zu erstellen
Ich habe versucht, die Methode der gegenseitigen Teilung von Eugrid in Java zu implementieren
Ich habe versucht, in Java von einer Zeichenfolge in einen LocalDate-Typ zu konvertieren
Ich habe versucht, eine Webanwendung voller Fehler mit Kotlin zu implementieren
Ich habe einen RESAS-API-Client in Java erstellt
Ich habe versucht, die Methode zu erklären
[Java] Ich habe versucht, ein Janken-Spiel zu erstellen, das Anfänger auf der Konsole ausführen können
Ich habe versucht, eine einfache Karten-App in Android Studio zu erstellen
Daten sortieren Absteigend, aufsteigend / Schienen
Ich habe versucht, Code wie eine Typdeklaration in Ruby zu schreiben
[Java] Ich habe versucht, mit der Grabmethode ein Labyrinth zu erstellen ♪
Ich habe ein Kalenderproblem mit Ruby versucht
Ich habe versucht, die verwendeten Methoden zusammenzufassen
Der Weg zur Erstellung eines Soundspiels 2
Ich habe das neue Yuan-Problem in Java ausprobiert
Ich habe versucht, das Iterator-Muster zu implementieren
Ich habe versucht, die Stream-API zusammenzufassen
Ich habe die AutoValue-Bibliothek mit Intellij ausprobiert
Der Weg zur Erstellung eines Soundspiels 3
Der Weg zur Erstellung eines Soundspiels 1
Ich habe versucht, eine Formel in Javadoc einzubetten
Es war ein Leben, in dem ich den thread-sicheren assoziativen Zähler zurücksetzen wollte
Ich habe versucht, das Problem der Tribonacci-Sequenz in Ruby mit Wiederholung zu lösen.
Ich habe versucht, den CPU-Kern mit Ruby voll auszunutzen
Ich habe versucht, mit AI "A3RT" eine Talk-App in Java zu erstellen.
[Ruby] Ich habe versucht, die häufigen Methoden in Paiza zusammenzufassen
[Ruby] Ich habe versucht, die häufigen Methoden mit paiza ② zusammenzufassen
Ich habe versucht, ein Beispielprogramm mit dem Problem des Datenbankspezialisten für domänengesteuertes Design zu erstellen
Ich habe versucht, polymorph in Nogizaka zu implementieren.
[Rails] Ich habe versucht, die Version von Rails von 5.0 auf 5.2 zu erhöhen
Java Ich habe versucht, einen einfachen Block zu brechen
Ich habe versucht, ein Personalmanagement-Tool zu entwickeln
Ich habe versucht, eine Website für das Studium von DUO3.0 zu entwickeln.
Ich wollte (a == 1 && a == 2 && a == 3) in Java wahr machen
Ich habe ein Janken-Spiel in Java (CLI) gemacht.
Ich habe versucht, eine LINE-Klon-App zu erstellen
Ich habe versucht, neunundneunzig in Java auszugeben
Ich habe versucht, Tomcat so einzustellen, dass das Servlet ausgeführt wird.
Ich habe versucht, eine Anwendung in 2 Sprachen zu entwickeln
Ich habe versucht, Alexa-Fähigkeiten mit Java zu erstellen
Ich habe versucht, eine Website zu entwickeln, um Ausgaben zu erfassen.
Ich habe versucht, einen Server mit Netty zu implementieren
Ich habe versucht, den Block mit Java zu brechen (1)
Ich möchte den Wert in Ruby erhalten
Ich habe versucht, CentOS-7 einfach in einen PC zu integrieren, den ich nicht mehr benötige
Was ich versucht habe, als ich alle Felder einer Bohne bekommen wollte
Ich habe versucht, das Problem der Tribonacci-Sequenz in Ruby zu lösen (Zeitlimit 10 Minuten).
Ich habe versucht, mit Javafx ein einfaches Spiel zu machen ① "Lass uns Glücksspiel finden" (unvollendet)
[Kleine Geschichte] Ich habe versucht, die Java-ArrayList etwas komfortabler zu gestalten
Ich war süchtig nach NoSuchMethodError in Cloud-Endpunkten