Ranguri medii pentru egalități
Atribuie ranguri medii de la unu pentru cel mult 1000 de valori numerice finite păstrând pozițiile.
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 resultVerifică înainte de aplicare
Compară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări.
Modele
Configurează un endpoint compatibil OpenAI sau Anthropic cu URL-ul de bază și cheia API, dacă este necesară. Testează conexiunea. Serverul local trebuie să ruleze; instrumentele externe pot transmite date separat.
Proiect
Verifică egalități, negative și intrare goală, respingând valorile booleene și numerele nefinite înainte de sortare.
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ă valorilor egale un loc explicit în rezultat
RankTrell este un spațiu de lucru Windows pentru programare cu IA, destinat dezvoltatorilor care transpun regulile datelor în modificări ale implementării. Deschide proiectul și descrie cum trebuie aplicația să trateze valorile egale, rezultatele lipsă și relația dintre ordinea intrărilor și a ieșirilor. Cere modelului conectat să inspecteze calculul și consumatorii lui, astfel încât propunerea să răspundă regulii de afaceri, nu doar să producă o listă sortată.
Contextul ranks.py sugerează o sarcină privind rangurile medii pentru valori egale. Poți cere o explicație despre asocierea rezultatelor cu pozițiile originale, apoi o editare delimitată dacă proiectul se comportă diferit. Folosește exemple mici cu răspunsuri cunoscute pentru o discuție concretă. Verifică atât politica egalităților, cât și reprezentarea returnată restului aplicației.
Când implementarea este gata de inspectat, rulează verificările proiectului cu valori egale, valori negative și intrări pe care funcția trebuie să le respingă. Compară rezultatele efective cu exemplele convenite înainte de editare. RankTrell acceptă endpointuri de modele compatibile OpenAI sau Anthropic, folosind date de autentificare când sunt necesare. Poți alege un model IA fără restricții oferit prin acea conexiune, în condițiile furnizorului; instrumentele și limitele contextului depind de model și server. Un rezultat așteptat clar rămâne mai util decât încrederea într-o explicație generată.
Reguli de clasare de stabilit înainte de acceptarea codului
Valorile egale trebuie să primească poziții diferite?
Depinde de regula de clasare necesară aplicației. Precizează dacă egalitățile împart rangul mediu, alt rang sau folosesc o cheie secundară. Cere exemple înainte de implementare pentru ca politica aleasă să fie vizibilă și testabilă.
De ce să păstrez relația cu ordinea originală a intrărilor?
Un consumator poate avea nevoie să asocieze fiecare rang înregistrării care a furnizat valoarea. Verifică explicit asocierea; o secvență sortată corect poate atribui rezultate înregistrărilor greșite dacă pozițiile nu sunt restabilite.
Numerele nevalide pot fi pur și simplu sortate la final?
Numai dacă aceasta este politica specificată și consumatorii o înțeleg. Altfel, cere respingerea sau altă reprezentare explicită. Inspectează validarea numerică împreună cu codul de clasare, fără a lăsa comparațiile de la execuție să definească regula aplicației.
Cum verific o refactorizare a clasării fără un set mare de date?
Începe cu câteva cazuri verificabile manual, cu egalități, valori distincte și o intrare goală. Apoi rulează date reprezentative din proiect după necesitate. Cazurile mici facilitează identificarea diferențelor de politică înainte ca validarea mai largă să adauge volum.
RankTrell · Actualizat 2026-10-25