Průměrná pořadí shodných hodnot
Přiřaďte průměrná pořadí od jedné nejvýše 1000 konečným číselným hodnotám při zachování pozic.
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 resultPřed použitím zkontrolujte
Porovnejte skutečné chování s očekávaným výsledkem. Pokud kontrola selže, před dalšími změnami zjistěte příčinu.
Modely
Nastavte endpoint kompatibilní s OpenAI nebo Anthropic pomocí základní URL a případného API klíče. Otestujte připojení. Lokální server modelu musí běžet; vzdálené nástroje mohou data odesílat samostatně.
Projekt
Ověřte shody, záporné hodnoty a prázdný vstup a odmítněte booleovské a nekonečné hodnoty před řazením.
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 resultDejte shodným hodnotám výslovné místo ve výsledku
RankTrell je programovací prostředí s AI pro Windows pro vývojáře převádějící pravidla dat na změny implementace. Otevřete projekt a popište, jak má aplikace zacházet se shodnými hodnotami, chybějícími výsledky a vztahem mezi pořadím vstupu a výstupu. Požádejte připojený model o kontrolu výpočtu a jeho příjemců, aby návrh plnil věcné pravidlo a pouze nevytvářel seřazený seznam.
Kontext ranks.py nabízí úlohu průměrného pořadí pro shodné hodnoty. Můžete požádat o vysvětlení mapování výsledků zpět na původní pozice a poté o cílenou úpravu, pokud se projekt chová jinak. Diskusi konkretizujte malými příklady se známými výsledky. Prověřte pravidla shod i reprezentaci vracenou zbytku aplikace.
Jakmile je implementace připravena ke kontrole, spusťte kontroly projektu pro shodné a záporné hodnoty i vstupy, které má funkce odmítnout. Porovnejte skutečné výsledky s příklady dohodnutými před úpravou. RankTrell podporuje koncové body modelů kompatibilní s OpenAI nebo Anthropic, s přihlašovacími údaji podle potřeby. Můžete zvolit model AI bez omezení nabízený přes toto připojení za podmínek poskytovatele; nástroje a limity kontextu závisejí na modelu a serveru. Jasný očekávaný výsledek zůstává užitečnější než důvěra ve vygenerované vysvětlení.
Pravidla pořadí k vyřešení před přijetím kódu
Mají shodné hodnoty dostat různé pozice?
Záleží na pravidle pořadí, které aplikace potřebuje. Uveďte, zda shody sdílejí průměrné pořadí, jiné pořadí nebo používají sekundární klíč. Před implementací si vyžádejte příklady, aby zvolené pravidlo bylo viditelné a testovatelné.
Proč zachovat vztah k původnímu pořadí vstupu?
Příjemce může potřebovat přiřadit každé pořadí záznamu, který dodal hodnotu. Toto mapování výslovně ověřte; správně seřazená posloupnost může při neobnovených pozicích přiřadit výsledky nesprávným záznamům.
Mohou se neplatná čísla prostě seřadit na konec?
Jen pokud je to vaše stanovené pravidlo a příjemci mu rozumějí. Jinak požadujte odmítnutí nebo jinou výslovnou reprezentaci. Numerickou validaci prověřte s kódem pořadí; nenechte pravidlo aplikace určovat chováním porovnávání za běhu.
Jak prověřit refaktoring pořadí bez velké datové sady?
Začněte několika ručně ověřitelnými případy se shodami, odlišnými hodnotami a prázdným vstupem. Poté podle potřeby spusťte reprezentativní projektová data. Malé případy usnadní odhalení rozdílů pravidel před přidáním objemu širší validací.
RankTrell · Aktualizováno 2026-10-25