Ranghi medi per valori uguali
Assegna ranghi medi a partire da uno a un massimo di 1000 valori numerici finiti conservandone le posizioni.
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 resultControlla prima di applicare
Confronta il comportamento effettivo con il risultato atteso. Se una verifica fallisce, indaga la causa prima di altre modifiche.
Modelli
Configura un endpoint compatibile con OpenAI o Anthropic usando URL di base e chiave API, se necessaria. Prova la connessione. Il server locale deve essere in esecuzione; gli strumenti remoti possono trasmettere dati separatamente.
Progetto
Verifica parità, negativi e ingresso vuoto, rifiutando booleani e valori non finiti prima di ordinare.
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 resultAssegna ai valori uguali un posto esplicito nel risultato
RankTrell è un ambiente di programmazione con IA per Windows per sviluppatori che traducono regole sui dati in modifiche implementative. Apri il progetto e descrivi come l'applicazione deve trattare valori uguali, risultati mancanti e relazione tra ordine dell'input e dell'output. Chiedi al modello connesso di esaminare il calcolo e chi lo usa, affinché la proposta risponda alla regola operativa invece di produrre soltanto una lista ordinata.
Il contesto di ranks.py suggerisce un'attività sui ranghi medi per valori a pari merito. Puoi chiedere una spiegazione di come i risultati vengono riportati alle posizioni originali, poi richiedere una modifica mirata se il progetto si comporta diversamente. Usa piccoli esempi con risposte note per rendere concreta la discussione. Esamina sia la politica sulle parità sia la rappresentazione restituita al resto dell'applicazione.
Quando l'implementazione è pronta da esaminare, esegui i controlli del progetto su valori uguali, valori negativi e input che la funzione deve rifiutare. Confronta i risultati effettivi con gli esempi concordati prima della modifica. RankTrell supporta endpoint di modelli compatibili con OpenAI o Anthropic, usando credenziali quando richieste. Puoi scegliere un modello IA senza restrizioni offerto tramite quella connessione, soggetto alle condizioni del fornitore; strumenti e limiti di contesto dipendono da modello e server. Un risultato atteso chiaro resta più utile della fiducia in una spiegazione generata.
Regole dei ranghi da stabilire prima di accettare il codice
I valori a pari merito devono ricevere posizioni diverse?
Dipende dalla regola di classificazione necessaria all’applicazione. Indica se le parità condividono un rango medio, un altro rango o usano una chiave secondaria. Chiedi esempi prima dell’implementazione, così la politica scelta è visibile e verificabile.
Perché preservare la relazione con l’ordine originale dell’input?
Chi usa il risultato potrebbe dover associare ogni rango al record che ha fornito il valore. Controlla esplicitamente questa corrispondenza: una sequenza ordinata correttamente può comunque assegnare risultati ai record sbagliati se le posizioni non vengono ripristinate.
I numeri non validi possono semplicemente finire in coda all’ordinamento?
Solo se è la politica specificata e chi usa i risultati la comprende. Altrimenti richiedi il rifiuto o un’altra rappresentazione esplicita. Esamina la convalida numerica insieme al codice dei ranghi, senza lasciare che il comportamento dei confronti in esecuzione definisca la regola applicativa.
Come esamino una ristrutturazione del calcolo dei ranghi senza molti dati?
Inizia da pochi casi verificabili a mano con parità, valori distinti e un input vuoto. Poi esegui dati rappresentativi del progetto se necessario. I piccoli casi rendono più evidenti le differenze di politica prima che una convalida più ampia aumenti il volume.
RankTrell · Aggiornato 2026-10-25