Fluxos de trabalho · Índice do sobrevivente de Josephus ×
def josephus_index(count, step):
if type(count) is not int or not 1 <= count <= 10000:
raise ValueError("circle.count")
if type(step) is not int or not 1 <= step <= 1000000:
raise ValueError("circle.step")
survivor = 0
for size in range(2, count + 1):
survivor = (survivor + step) % size
return survivor
✳Encontre o índice começando em zero do sobrevivente de Josephus para um a 10000 participantes e passo de um a 1000000.
✓ AlteraçõesRevise antes de aplicar ↗
Ilustração do ambiente
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 um participante e passo um, rejeitando argumentos zero, fracionários ou booleanos.
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.
def josephus_index(count, step):
if type(count) is not int or not 1 <= count <= 10000:
raise ValueError("circle.count")
if type(step) is not int or not 1 <= step <= 1000000:
raise ValueError("circle.step")
survivor = 0
for size in range(2, count + 1):
survivor = (survivor + step) % size
return survivor
Ambiente de programação com IA
Detecte a divergência de índices antes que chegue à interface
Um índice pode estar correto dentro de uma função e ainda apontar para o item errado quando a interface identifica posições de outra forma. CircleJunco oferece um ambiente de programação com IA para Windows para rastrear essa divergência entre arquivos do projeto. Comece indicando onde a contagem começa e como uma posição retornada se torna um rótulo exibido ou um registro selecionado. Peça ao assistente para examinar ambas as convenções antes de editar qualquer lado.
O exemplo do índice do sobrevivente de Josephus fornece um caso concreto de desenvolvimento. Você pode revisar os limites da contagem e do passo de entrada e acompanhar o índice retornado até seu consumidor. Solicite uma alteração apenas após concordar se o chamador espera um índice ou uma posição legível por pessoas. Casos pequenos verificáveis à mão são úteis aqui porque mostram o comportamento pretendido sem esconder uma convenção em uma saída grande.
Escolha um modelo de IA abliterada, se disponível no endpoint compatível com OpenAI ou Anthropic aceito, com credenciais quando exigidas. O modelo e o servidor determinam o acesso a ferramentas, o contexto e as restrições. Revise as alterações propostas de conversão ou validação e execute os testes do projeto passando pelo chamador. Um modelo local precisa de um servidor separado em execução, e outras ferramentas conectadas ainda podem usar serviços externos durante o trabalho.
Verificação de convenções de contagem no código
Onde documentar se a contagem começa em zero?
Declare isso no limite da função e na expectativa do chamador. Inclua um exemplo que mostre separadamente o índice retornado e a posição exibida. Isso facilita a revisão de uma conversão sem introduzir um ajuste extra em outro lugar.
Devo somar um dentro da função auxiliar para corrigir um rótulo?
Examine todos os chamadores primeiro. Se esperam um índice, alterar a função auxiliar pode quebrar a lógica de seleção mesmo que melhore um rótulo. Peça uma proposta que coloque a conversão no limite adequado ao contrato da aplicação.
O que torna um exemplo pequeno útil nesta tarefa?
Escolha uma contagem e um passo que consiga acompanhar manualmente e indique o sobrevivente esperado e seu rótulo exibido. Inclua a menor entrada aceita. Esses exemplos revelam uma divergência de convenção com mais clareza que um resultado grande sem explicação.
O exemplo não comprova nenhuma simulação automática. O ambiente permite discutir e revisar sua implementação. Use o ambiente do projeto para executar o código e comparar sua saída com os casos de aceitação definidos para a tarefa.