Zelluläre Schritte auf einem Ring
Berechne einen gleichzeitigen Schritt eines elementaren zellulären Automaten auf einem Ring mit einer bis 256 Binärzellen.
def cellular_step(bits, rule):
bits = tuple(bits)
if not 1 <= len(bits) <= 256 or any(type(v) is not int or v not in (0, 1) for v in bits):
raise ValueError("cells.binary")
if type(rule) is not int or not 0 <= rule <= 255:
raise ValueError("rule.byte")
n = len(bits)
return [(rule >> (4 * bits[(i - 1) % n] + 2 * bits[i] + bits[(i + 1) % n])) & 1 for i in range(n)]| Vor dem Anwenden prüfen | Vergleichen Sie das tatsächliche Verhalten mit dem erwarteten Ergebnis. Klären Sie fehlgeschlagene Prüfungen vor weiteren Änderungen. |
|---|---|
| Modelle | Richten Sie einen OpenAI-kompatiblen oder Anthropic-Endpunkt mit Basis-URL und gegebenenfalls API-Schlüssel ein. Testen Sie die Verbindung. Ein lokaler Modellserver muss laufen; entfernte Werkzeuge können Daten separat übertragen. |
| Projekt | Prüfe Randnachbarn und eine einzelne Zelle, und lehne leere Eingaben, boolesche Zellen und Regeln außerhalb null bis 255 ab. |
def cellular_step(bits, rule):
bits = tuple(bits)
if not 1 <= len(bits) <= 256 or any(type(v) is not int or v not in (0, 1) for v in bits):
raise ValueError("cells.binary")
if type(rule) is not int or not 0 <= rule <= 255:
raise ValueError("rule.byte")
n = len(bits)
return [(rule >> (4 * bits[(i - 1) % n] + 2 * bits[i] + bits[(i + 1) % n])) & 1 for i in range(n)]Einen Simulationsschritt über den gesamten Zustand konsistent halten
RuleFennec bietet einen KI-Programmierarbeitsbereich für Windows für Entwickler, die Zustandsübergangscode ändern. Erklären Sie vor der Anforderung einer Implementierung, was ein Schritt in Ihrer Anwendung bedeutet und welche Werte er lesen darf. Projektordner und Gespräch mit dem verbundenen Modell bieten einen Ort, diese Anforderung mit dem aktuellen Quelltext zu vergleichen.
Für einen elementaren zellulären Ring ist eine nützliche Aufgabe, eine synchrone Aktualisierung aus derselben Eingabegeneration zu berechnen. Nennen Sie Regeldarstellung, zyklisches Randverhalten und zulässige Zellwerte im Auftrag. Lassen Sie das Modell prüfen, ob ein Änderungsvorschlag versehentlich Werte liest, die früher im selben Schritt bereits aktualisiert wurden. Das ist eine Quelltextprüffrage mit beobachtbaren Folgen.
Prüfen Sie den Vorschlag mit einem Einzellenfall und einem kurzen Ring, dessen Endzellen voneinander abhängen. Führen Sie die projekteigenen Tests aus und vergleichen Sie die gesamte nächste Generation statt nur einer günstigen Position. Beziehen Sie Eingabevalidierung und Zustandserhaltung ebenfalls ein, damit eine geänderte Aktualisierungsfolge nicht unbemerkt den Bereich akzeptierter Daten erweitert.
Wählen Sie ein Modell über einen unterstützten OpenAI-kompatiblen oder Anthropic-Endpunkt und geben Sie bei Bedarf Zugangsdaten an. Uneingeschränkte KI-Modelle stehen zur Wahl, wenn der Endpunkt sie anbietet. Das gewählte Modell und der Server bestimmen Kontextkapazität, Werkzeuge und Einschränkungen; Ihre Übergangstestfälle bleiben die Belege für die Annahme des Codevorschlags.
Fragen zu einem geänderten Zustandsübergang
- Was bedeutet synchron im Programmierauftrag?
Legen Sie fest, dass jede Ausgabezelle aus derselben Eingabegeneration berechnet wird. Die vorgeschlagene Implementierung darf frühere Ausgaben nicht in spätere Berechnungen einfließen lassen. Geben Sie ein Beispiel an, das bei direkter Aktualisierung andere Ergebnisse liefert, damit die Anforderung im Projekt unmittelbar testbar ist.
- Warum einen Ring mit nur einer Zelle einbeziehen?
Er lässt zyklische Nachbarn zusammenfallen und macht Randannahmen sichtbar. Geben Sie das erwartete Ergebnis für die gewählte Regel an, statt seine Abdeckung durch größere Beispiele anzunehmen. Prüfen Sie, ob der Vorschlag dasselbe definierte Verhalten bei jeder unterstützten Größe verwendet.
- Sollten boolesche Werte als Zellen zählen?
Verwenden Sie die erforderliche Eingaberegel Ihrer Anwendung und nennen Sie sie ausdrücklich. Die Beispielaufgabe weist boolesche Zellen zurück, obwohl manche Sprachen sie wie Ganzzahlen behandeln. Prüfen Sie die Validierung und ergänzen Sie einen Testfall, damit der Patch diese Unterscheidung nicht stillschweigend verändert.
- Kann RuleFennec eine ganze Simulation anhand eines Schritts beurteilen?
Der Arbeitsbereich unterstützt die Besprechung Ihres Codes, aber Testfälle für einen Schritt belegen nur die ausgeübten Verhaltensweisen. Betrifft die Änderung wiederholte Ausführung, definieren Sie diese zusätzlichen Erwartungen und führen Sie geeignete Projektprüfungen aus, bevor Sie sich auf die umfassendere Simulation verlassen.
RuleFennec · Aktualisiert 2026-10-25