Postos médios para empates
Atribua postos médios iniciados em um a até 1000 valores numéricos finitos mantendo suas posições.
from math import isfinite
def average_ranks(values):
if type(values) not in (list, tuple) or len(values) > 1000:
raise ValueError("values.container")
values = tuple(values)
if len(values) > 1000 or any(
type(v) not in (int, float) or
(type(v) is float and not isfinite(v)) for v in values
):
raise ValueError("values.invalid")
order = sorted(range(len(values)), key=values.__getitem__)
result = [0.0] * len(values)
first = 0
while first < len(order):
end = first + 1
while end < len(order) and values[order[end]] == values[order[first]]:
end += 1
rank = (first + 1 + end) / 2
for i in order[first:end]:
result[i] = rank
first = end
return resultRevise 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 empates, negativos e entrada vazia, rejeitando booleanos e valores de ponto flutuante não finitos antes de ordenar.
from math import isfinite
def average_ranks(values):
if type(values) not in (list, tuple) or len(values) > 1000:
raise ValueError("values.container")
values = tuple(values)
if len(values) > 1000 or any(
type(v) not in (int, float) or
(type(v) is float and not isfinite(v)) for v in values
):
raise ValueError("values.invalid")
order = sorted(range(len(values)), key=values.__getitem__)
result = [0.0] * len(values)
first = 0
while first < len(order):
end = first + 1
while end < len(order) and values[order[end]] == values[order[first]]:
end += 1
rank = (first + 1 + end) / 2
for i in order[first:end]:
result[i] = rank
first = end
return resultDê aos valores iguais um lugar explícito no resultado
RankTrell é um ambiente de programação com IA para Windows para desenvolvedores que transformam regras de dados em alterações na implementação. Abra o projeto e descreva como a aplicação deve tratar valores iguais, resultados ausentes e a relação entre as ordens de entrada e saída. Peça ao modelo conectado que examine o cálculo e seus consumidores, para que a proposta atenda à regra de negócio em vez de apenas produzir uma lista ordenada.
O contexto de ranks.py sugere uma tarefa sobre posições médias para valores empatados. Você pode pedir uma explicação de como os resultados são associados às posições originais e depois solicitar uma edição focada se o projeto se comportar de outra maneira. Use pequenos exemplos com respostas conhecidas para manter a discussão concreta. Revise tanto a política de empates quanto a representação retornada ao restante da aplicação.
Quando a implementação estiver pronta para análise, execute as verificações do projeto com valores iguais, valores negativos e entradas que a função deve rejeitar. Compare os resultados reais com os exemplos acordados antes da edição. RankTrell suporta endpoints de modelos compatíveis com OpenAI ou da Anthropic, usando credenciais quando necessário. Você pode escolher um modelo de IA sem restrições oferecido por essa conexão, sujeito às condições do provedor; ferramentas e limites de contexto dependem do modelo e do servidor. Um resultado esperado claro continua sendo mais útil do que a confiança em uma explicação gerada.
Regras de ranking a definir antes de aceitar o código
Valores empatados devem receber posições diferentes?
Isso depende da regra de ranking exigida pela aplicação. Informe se os empates compartilham uma posição média, outra posição ou usam uma chave secundária. Peça exemplos antes da implementação para que a política escolhida seja visível e testável.
Por que preservar a relação com a ordem de entrada original?
Um consumidor pode precisar associar cada posição ao registro que forneceu o valor. Confira esse mapeamento explicitamente; uma sequência corretamente ordenada ainda pode atribuir resultados aos registros errados se as posições não forem restauradas.
Números inválidos podem simplesmente ser ordenados no final?
Somente se essa for a política especificada e os consumidores a entenderem. Caso contrário, exija rejeição ou outra representação explícita. Examine a validação numérica junto com o código de ranking em vez de deixar que o comportamento das comparações em execução defina a regra da aplicação.
Como revisar uma refatoração de ranking sem um grande conjunto de dados?
Comece com alguns casos verificáveis manualmente que contenham empates, valores distintos e uma entrada vazia. Depois, execute dados representativos do projeto conforme necessário. Casos pequenos facilitam identificar diferenças de política antes que uma validação mais ampla acrescente volume.
RankTrell · Atualizado 2026-10-25