Kroki automatu komórkowego na pierścieniu
Oblicz jeden równoczesny krok elementarnego automatu komórkowego na pierścieniu od jednej do 256 komórek binarnych.
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)]| Sprawdź przed zastosowaniem | Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami. |
|---|---|
| Modele | Dodaj endpoint zgodny z OpenAI lub Anthropic, podając bazowy URL i klucz API, jeśli jest wymagany. Sprawdź połączenie. Lokalny serwer modelu musi działać; zdalne narzędzia mogą przesyłać dane oddzielnie. |
| Projekt | Sprawdź sąsiedztwo przez brzeg i pojedynczą komórkę, odrzucając pustą listę, komórki logiczne oraz reguły spoza zera do 255. |
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)]Zachowaj spójność kroku symulacji dla całego stanu
RuleFennec udostępnia środowisko programowania z AI dla Windows programistom zmieniającym kod przejść stanu. Przed zleceniem implementacji wyjaśnij, co oznacza jeden krok w aplikacji i jakie wartości może odczytywać. Folder projektu i rozmowa z podłączonym modelem pozwalają porównać to wymaganie z obecnymi źródłami.
W przypadku elementarnego automatu komórkowego na pierścieniu użytecznym zadaniem jest obliczenie jednej synchronicznej aktualizacji z tej samej generacji wejściowej. W zleceniu uwzględnij reprezentację reguły, zawijanie na granicy i akceptowane wartości komórek. Poproś model o sprawdzenie, czy proponowana zmiana nie odczytuje przypadkiem wartości już zaktualizowanych wcześniej w tym kroku. To pytanie o kod źródłowy z obserwowalnym skutkiem.
Sprawdź propozycję za pomocą przypadku jednokomórkowego oraz krótkiego pierścienia, którego skrajne komórki zależą od siebie. Uruchom testy projektu i porównaj całą następną generację, a nie jedną dogodną pozycję. Uwzględnij też walidację wejścia i zachowanie stanu, aby zmiana kolejności aktualizacji nie rozszerzyła po cichu zbioru akceptowanych danych.
Wybierz model przez obsługiwany punkt końcowy zgodny z OpenAI lub punkt Anthropic, podając dane uwierzytelniające tam, gdzie są potrzebne. Modele AI bez ograniczeń są opcją, gdy oferuje je punkt końcowy. Wybrany model i serwer określają pojemność kontekstu, narzędzia i ograniczenia; przypadki testowe przejść pozostają dowodem przy akceptacji proponowanego kodu.
Pytania dotyczące zmiany przejścia stanu
- Co oznacza synchroniczność w zleceniu programistycznym?
Określ, że każda komórka wyjściowa jest obliczana z tej samej generacji wejściowej. Proponowana implementacja nie powinna pozwalać, aby wcześniejsze wyniki wpływały na późniejsze obliczenia. Dołącz przykład dający inny wynik przy aktualizacji w miejscu, aby wymaganie było bezpośrednio testowalne w projekcie.
- Dlaczego uwzględniać pierścień jednokomórkowy?
Wymusza pokrywanie się sąsiadów na zawiniętej granicy i ujawnia założenia brzegowe. Określ oczekiwany wynik wybranej reguły, zamiast zakładać, że większy przykład go obejmuje. Sprawdź, czy propozycja stosuje to samo zdefiniowane zachowanie dla każdego obsługiwanego rozmiaru.
- Czy wartości logiczne powinny być dopuszczalne jako komórki?
Zastosuj politykę wejścia wymaganą przez aplikację i określ ją jawnie. Przykładowe zadanie odrzuca komórki logiczne, choć niektóre języki traktują je jak liczby całkowite. Sprawdź walidację i dodaj przypadek testowy, aby poprawka nie zmieniła po cichu tego rozróżnienia.
- Czy RuleFennec może ocenić całą symulację na podstawie jednego kroku?
Środowisko wspiera omawianie kodu, ale przypadki jednokrokowe ustalają tylko zachowania, które sprawdzają. Jeśli zmiana wpływa na wielokrotne wykonanie, określ te dodatkowe oczekiwania i uruchom odpowiednie kontrole projektu, zanim polegniesz na szerszej symulacji.
RuleFennec · Zaktualizowano 2026-10-25