Cellulaire stappen op een ring
Bereken één gelijktijdige stap van een elementaire cellulaire automaat op een ring van één tot 256 binaire cellen.
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)]| Controleer vóór het toepassen | Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen. |
|---|---|
| Modellen | Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen. |
| Project | Test de buren aan de uiteinden en één cel, en weiger lege invoer, booleaanse cellen en regels buiten nul tot en met 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)]Houd een simulatiestap consistent over de hele toestand
RuleFennec biedt een Windows-programmeerwerkruimte met AI voor ontwikkelaars die code voor toestandsovergangen wijzigen. Leg voordat u om een implementatie vraagt uit wat één stap in uw toepassing betekent en welke waarden die mag lezen. De projectmap en het gesprek met het verbonden model bieden een plek om die vereiste met de huidige broncode te vergelijken.
Voor een elementaire cellulaire ring is een nuttige taak het berekenen van één synchrone update uit dezelfde invoergeneratie. Vermeld de regelrepresentatie, het terugloopgedrag aan de uiteinden en toegestane celwaarden in het verzoek. Laat het model inspecteren of een voorgestelde wijziging per ongeluk waarden leest die eerder in de stap al zijn bijgewerkt. Dat is een broncodebeoordelingsvraag met een waarneembaar gevolg.
Controleer het voorstel met een testgeval met één cel en een korte ring waarvan de eindcellen van elkaar afhangen. Voer de eigen projecttests uit en vergelijk de hele volgende generatie, niet alleen één handige positie. Houd ook invoervalidatie en toestandsbehoud in de beoordeling, zodat een wijziging van updatevolgorde niet ongemerkt de toegestane gegevens verruimt.
Selecteer een model via een ondersteund OpenAI-compatibel of Anthropic-eindpunt en geef inloggegevens waar nodig. Onbeperkte AI-modellen zijn een optie wanneer het eindpunt ze aanbiedt. Het geselecteerde model en de server bepalen contextcapaciteit, hulpmiddelen en beperkingen; uw overgangstestgevallen blijven het bewijs voor het aanvaarden van de voorgestelde code.
Vragen bij een wijziging van toestandsovergangen
- Wat betekent synchroon in het programmeerverzoek?
Specificeer dat elke uitvoercel wordt berekend uit dezelfde invoergeneratie. De voorgestelde implementatie mag eerdere uitvoer latere berekeningen niet laten beïnvloeden. Voeg een voorbeeld toe dat bij directe updates een andere uitkomst zou geven, zodat de vereiste direct testbaar is in uw project.
- Waarom een ring met één cel opnemen?
Daardoor vallen de buren aan de omgeslagen grenzen samen en worden grensaannames zichtbaar. Vermeld het verwachte resultaat voor de gekozen regel in plaats van aan te nemen dat een groter voorbeeld dit dekt. Controleer dat het voorstel bij elke ondersteunde grootte hetzelfde gedefinieerde gedrag gebruikt.
- Moeten booleaanse waarden als cellen tellen?
Gebruik het invoerbeleid dat uw toepassing vereist en vermeld het expliciet. De illustratieve taak wijst booleaanse cellen af, hoewel sommige talen ze als gehele getallen behandelen. Beoordeel de validatie en voeg een testgeval toe, zodat de voorgestelde wijziging dat onderscheid niet ongemerkt verandert.
- Kan RuleFennec vanuit één stap een hele simulatie beoordelen?
De werkruimte ondersteunt het bespreken van uw code, maar testgevallen voor één stap stellen alleen het gedrag vast dat ze uitvoeren. Als de gevraagde wijziging herhaalde uitvoering beïnvloedt, definieer dan die aanvullende verwachtingen en voer passende projectcontroles uit voordat u op de bredere simulatie vertrouwt.
RuleFennec · Bijgewerkt 2026-10-25