Transformada inteira de Walsh–Hadamard
Aplique a transformada de Walsh–Hadamard sem normalização a uma sequência não vazia de inteiros limitados com comprimento potência de dois até 256.
def walsh_transform(values):
out = list(values)
n = len(out)
if not 1 <= n <= 256 or n & (n - 1):
raise ValueError("length.power_two")
if any(type(v) is not int or abs(v) > 1000000 for v in out):
raise ValueError("value.range")
step = 1
while step < n:
for start in range(0, n, 2 * step):
for j in range(start, start + step):
a, b = out[j], out[j + step]
out[j], out[j + step] = a + b, a - b
step *= 2
return out| Projeto | Rejeite comprimentos inválidos e booleanos, verificando que duas aplicações multiplicam o original pelo comprimento. |
|---|---|
| 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. |
def walsh_transform(values):
out = list(values)
n = len(out)
if not 1 <= n <= 256 or n & (n - 1):
raise ValueError("length.power_two")
if any(type(v) is not int or abs(v) > 1000000 for v in out):
raise ValueError("value.range")
step = 1
while step < n:
for start in range(0, n, 2 * step):
for j in range(start, start + step):
a, b = out[j], out[j + step]
out[j], out[j + step] = a + b, a - b
step *= 2
return outMantenha as convenções da transformada visíveis durante a refatoração
O WalshAster é um ambiente de programação para Windows para trabalhar em mudanças no código-fonte com um modelo de IA conectado. Refatorações computacionais ficam mais fáceis de avaliar quando a convenção original é declarada primeiro. Descreva a entrada aceita, o formato esperado da saída e a regra de escala antes de pedir ao assistente que reorganize laços ou introduza outra implementação.
O exemplo de transformada inteira de Walsh–Hadamard fornece uma tarefa concreta para essa conversa. Peça ao modelo que examine os pares de atualização e o limite de comprimento da entrada no contexto do seu próprio módulo. Mantenha explícita a convenção do exemplo para que um nome familiar não leve o assistente a presumir uma variante normalizada ou outra ordenação dos resultados.
Durante a revisão, compare o código proposto com pequenas saídas conhecidas e com as propriedades que seu projeto espera preservar. Neste exemplo, aplicar a transformada duas vezes oferece uma verificação útil de escala, junto com casos de entradas rejeitadas. Execute as verificações por conta própria e examine qualquer chamador que interprete a saída; uma refatoração interna não deve alterar silenciosamente a convenção dos dados exposta ali.
Escolha um modelo de IA sem restrições somente por um endpoint compatível com OpenAI ou endpoint Anthropic suportado que o disponibilize. Configure as credenciais exigidas e confira a capacidade de contexto e as ferramentas. As restrições do modelo conectado continuam dependendo do provedor, e a simplificação proposta ainda precisa de evidências da sua implementação e dos seus testes reais.
Perguntas de revisão para manutenção de transformadas
- Que convenção devo documentar antes de solicitar uma refatoração?
Declare a ordenação da saída, a escala e os comprimentos de entrada aceitos, além dos tipos de elementos tratados pelo módulo. Inclua uma entrada pequena conhecida e sua saída. Isso impede que uma proposta substitua a convenção da transformada por outra sob o mesmo nome.
- A verificação de transformada dupla basta por si só?
Ela é útil para a convenção ilustrada, mas deve acompanhar saídas conhecidas e testes dos limites de entrada. Confira também a interpretação do chamador. Preservar uma propriedade algébrica não comprova necessariamente que a ordenação e o comportamento da interface continuem como a aplicação espera.
- Como revisar uma mudança que modifica a entrada?
Primeiro determine se o contrato existente permite essa modificação. Inclua chamadores que reutilizam os valores originais e teste essa reutilização explicitamente. Uma proposta de economia de memória altera o comportamento observável se esses chamadores dependerem de uma sequência de entrada inalterada.
- Usar outro modelo muda a verificação necessária?
Não. Mantenha as mesmas entradas aceitas, resultados conhecidos e verificações de escala ao considerar a proposta de outro modelo. A seleção do modelo pode alterar a explicação ou o código sugerido, mas não comprova a correção nem substitui a verificação do projeto.
WalshAster · Atualizado 2026-10-25