Passos de autômato celular em anel
Calcule um passo simultâneo de um autômato celular elementar em um anel de uma a 256 células binárias.
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)]| Revise antes de aplicar | Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações. |
|---|---|
| Modelos | Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente. |
| Projeto | Teste vizinhos nas extremidades e uma célula isolada, rejeitando entrada vazia, células booleanas e regras fora de zero a 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)]Mantenha uma etapa de simulação consistente em todo o estado
O RuleFennec oferece um ambiente de programação com IA para Windows para desenvolvedores que alteram código de transição de estados. Antes de pedir uma implementação, explique o que uma etapa significa na aplicação e quais valores ela pode ler. A pasta do projeto e a conversa com o modelo conectado oferecem um lugar para comparar esse requisito com o código-fonte atual.
Para um anel celular elementar, uma tarefa útil é calcular uma atualização síncrona a partir da mesma geração de entrada. Inclua na solicitação a representação da regra, o comportamento circular e os valores de célula aceitos. Peça ao modelo que examine se uma edição proposta lê acidentalmente valores já atualizados anteriormente na etapa. Essa é uma questão de revisão de código com uma consequência observável.
Confira a proposta usando um caso de teste de uma única célula e um anel curto cujas células das extremidades dependam umas das outras. Execute os testes do projeto e compare toda a próxima geração, não apenas uma posição conveniente. Mantenha também a validação das entradas e a preservação do estado na revisão, para que uma mudança na ordem de atualização não amplie silenciosamente os dados aceitos.
Selecione um modelo por um endpoint compatível com OpenAI ou Anthropic suportado, fornecendo credenciais quando necessário. Modelos de IA sem restrições são uma opção quando o endpoint os oferece. O modelo e o servidor selecionados determinam capacidade de contexto, ferramentas e restrições; seus casos de teste de transição continuam sendo a evidência para aceitar o código proposto.
Perguntas para uma alteração na transição de estados
- O que significa síncrono na solicitação de programação?
Especifique que cada célula de saída é calculada a partir da mesma geração de entrada. A implementação proposta não deve deixar saídas anteriores afetarem cálculos posteriores. Inclua um exemplo que teria resultado diferente com atualizações no próprio lugar, para testar diretamente o requisito no projeto.
- Por que incluir um anel de uma única célula?
Ele força os vizinhos circulares a coincidirem e torna visíveis as premissas de contorno. Declare o resultado esperado para a regra escolhida, em vez de presumir que um exemplo maior o cubra. Confira se a proposta usa o mesmo comportamento definido em todos os tamanhos suportados.
- Valores booleanos devem contar como células?
Use a política de entrada exigida pela aplicação e declare-a explicitamente. A tarefa ilustrativa rejeita células booleanas, embora algumas linguagens as tratem como inteiros. Revise a validação e adicione um caso de teste para que a alteração proposta não mude silenciosamente essa distinção.
- O RuleFennec pode avaliar uma simulação inteira a partir de uma etapa?
O ambiente apoia a discussão do código, mas casos de teste de uma etapa estabelecem apenas os comportamentos exercitados. Se a mudança solicitada afetar execuções repetidas, defina essas expectativas adicionais e execute verificações adequadas do projeto antes de confiar na simulação mais ampla.
RuleFennec · Atualizado 2026-10-25