Das Verkehrsmodell von Biham-Middleton-Levine ist ein selbstorganisierender Zellularautomat, der den vereinfachten Verkehr modelliert.
Es besteht aus einer Anzahl von Autos, die durch Punkte auf einem Gitter mit einer zufälligen Startposition dargestellt werden, wobei jedes Auto einer von zwei Typen sein kann: diejenigen, die sich nur nach unten bewegen (in diesem Artikel als blau dargestellt), und diejenigen, die sich nur in Richtung bewegen rechts (in diesem Artikel rot dargestellt). Die beiden Wagentypen bewegen sich abwechselnd. In jeder Runde rücken alle Autos des entsprechenden Typs um einen Schritt vor, wenn sie nicht von einem anderen Auto geblockt werden.
Ihre Aufgabe ist es, dieses Modell als Animation zu visualisieren. Hier sind einige gute Demonstrationen.
Eingang
Eine Gleitkommazahl zwischen 0 und 1 für die Dichte und zwei Ganzzahlen für die Höhe und Breite des angezeigten Rasters. Angenommen, Eingaben sind gültig, und Parameter für eine Funktion oder das Lesen von Benutzereingaben sind in Ordnung.
Beispiel: 0.38 144 89
(entspricht obigem Bild)
Ausgabe
Ein Raster von mindestens 80 x 80, in dem die Animation dieses Modells angezeigt wird. Zu Beginn werden Autos nach dem Zufallsprinzip in das Raster eingefügt, bis das Raster die Eingabedichte mit der Hälfte Rot und der Hälfte Blau erreicht (dh Dichte multipliziert mit der Gesamtzahl der Rasterquadrate, gerundet, wie Sie möchten). Die Dichte muss dieser Wert sein, was bedeutet, dass Sie nicht jede Zelle mit einer Dichte als Wahrscheinlichkeit füllen können. Für jeden Schritt bewegt sich ein Wagentyp entweder nach unten oder nach rechts und umgibt ihn, wenn er die Kante passiert. Die Art des sich bewegenden Autos wechselt bei jedem Schritt. Um die Animation sichtbar zu machen, müssen zwischen jedem Schritt mindestens 10 ms liegen.
Regeln
Die Fahrzeuge können eine beliebige Farbe oder ein beliebiges Symbol haben, sofern sie voneinander und vom Hintergrund unterscheidbar sind und jeder Fahrzeugtyp dieselbe Farbe oder dasselbe Symbol aufweist.
Konsolen- und Grafikausgabe sind zulässig. Für die Konsolenausgabe ist jedes druckbare Symbol in Ordnung, die Ausgabe muss jedoch als Zeichenraster erfolgen.
Bitte geben Sie an, welche Art von Ausgabe Sie erstellt haben, wenn Sie keinen Screenshot oder kein GIF haben.
Die Simulation muss für immer laufen.
Die Ausgabe ist etwas komplex. Wenn Sie Fragen haben, kommentieren Sie diese bitte.