Coeficientes binomiais exatos
Calcule coeficientes binomiais exatos para n inteiro de zero a 10000 e k de zero a n.
def binomial(n, k):
if any(type(v) is not int for v in (n, k)):
raise ValueError("integer.required")
if not 0 <= k <= n <= 10000:
raise ValueError("binomial.range")
k = min(k, n - k)
result = 1
for i in range(1, k + 1):
result = result * (n - k + i) // i
return resultModelos
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 extremos, simetria e um resultado grande, rejeitando operandos inválidos ou booleanos antes do laço.
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 binomial(n, k):
if any(type(v) is not int for v in (n, k)):
raise ValueError("integer.required")
if not 0 <= k <= n <= 10000:
raise ValueError("binomial.range")
k = min(k, n - k)
result = 1
for i in range(1, k + 1):
result = result * (n - k + i) // i
return resultMantenha os requisitos numéricos ligados ao código
Choosequill oferece aos desenvolvedores um ambiente Windows para discutir código numérico com um modelo de IA mantendo o projeto à vista. Comece pelo requisito que torna um resultado útil: se ele precisa ser exato, quais entradas são aceitas e como os chamadores devem tratar rejeições. Essas decisões dão ao assistente uma base concreta antes de propor uma implementação substituta.
Por exemplo, a tarefa de coeficientes binomiais pede resultados inteiros exatos dentro de um intervalo de entrada declarado. Leve essa função e seus chamadores à conversa e pergunte como uma edição preserva os casos extremos e o significado de entradas inválidas. Uma fórmula concisa é apenas parte da revisão; o software ao redor também precisa receber o resultado no formato esperado.
Use valores de referência e propriedades como simetria para verificar a proposta no projeto. Inclua um resultado grande que revele uma conversão acidental para ponto flutuante, examine o código alterado e execute os testes pertinentes. Choosequill pode se conectar a endpoints suportados compatíveis com OpenAI ou da Anthropic, com credenciais quando exigidas. Selecione um modelo sem restrições quando seu serviço o oferecer, lembrando que os limites de contexto e as ferramentas vêm do modelo e do servidor. Seu contrato numérico continua sendo o padrão de aceitação do trabalho.
Perguntas de revisão para cálculos exatos
O que devo definir antes de pedir uma reescrita numérica?
Especifique tipos aceitos, intervalo válido, requisitos de exatidão e comportamento de falha esperado. Inclua o chamador que consome o resultado. Esses detalhes ajudam a distinguir uma mudança válida de software de uma fórmula matematicamente plausível com saídas incompatíveis.
Por que incluir um resultado de referência grande?
Exemplos pequenos podem continuar passando após uma conversão não intencional para ponto flutuante. Um inteiro grande conhecido pode revelar essa mudança. Compare o resultado exato, não o texto formatado para exibição, e examine como o chamador o armazena ou serializa.
Valores booleanos devem contar como inteiros?
Explicite essa decisão no contrato de entrada. O exemplo existente os rejeita. Revise cuidadosamente as verificações de tipo propostas e mantenha um caso de teste dedicado para que uma conversão conveniente da linguagem não amplie silenciosamente as entradas aceitas.
O que verificações de simetria podem acrescentar?
Elas testam uma relação entre várias entradas e podem revelar erros além de alguns valores de referência. Use-as junto com respostas conhecidas e testes de limites; uma relação satisfeita, sozinha, não prova que toda a implementação está correta.
Choosequill · Atualizado 2026-10-25