Gemiddelde rangen bij gelijke waarden
Ken gemiddelde rangen vanaf één toe aan maximaal 1000 eindige numerieke waarden met behoud van hun posities.
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 resultControleer vóór het toepassen
Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
Modellen
Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.
Project
Test gelijke waarden, negatieve waarden en lege invoer en weiger booleaanse waarden en niet-eindige kommagetallen vóór het sorteren.
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 resultGeef gelijke waarden een expliciete plaats in het resultaat
RankTrell is een AI-programmeeromgeving voor Windows voor ontwikkelaars die gegevensregels naar implementatiewijzigingen vertalen. Open je project en beschrijf hoe de toepassing gelijke waarden, ontbrekende resultaten en de relatie tussen invoer- en uitvoervolgorde moet behandelen. Vraag het verbonden model de berekening en haar afnemers te onderzoeken, zodat het voorstel de bedrijfsregel uitvoert in plaats van alleen een gesorteerde lijst te maken.
De context van ranks.py suggereert een taak rond gemiddelde rangen voor gelijke waarden. Je kunt vragen hoe resultaten op hun oorspronkelijke posities worden teruggeplaatst en daarna om een gerichte wijziging vragen als je project anders werkt. Gebruik kleine voorbeelden met bekende antwoorden om het gesprek concreet te houden. Beoordeel zowel het beleid bij gelijke waarden als de weergave die de rest van de toepassing ontvangt.
Zodra de implementatie kan worden beoordeeld, voer je projectcontroles uit voor gelijke waarden, negatieve waarden en invoer die de functie moet afwijzen. Vergelijk werkelijke resultaten met de voorbeelden die vóór het wijzigen zijn afgesproken. RankTrell ondersteunt OpenAI-compatibele of Anthropic-modelendpoints, met inloggegevens waar nodig. Je kunt een onbeperkt AI-model kiezen dat via die verbinding wordt aangeboden, onder de voorwaarden van de provider; tools en contextlimieten hangen af van model en server. Een duidelijk verwacht resultaat blijft nuttiger dan vertrouwen in een gegenereerde uitleg.
Rangschikkingsregels vastleggen voordat je code accepteert
Moeten gelijke waarden verschillende posities krijgen?
Dat hangt af van de rangschikkingsregel die je toepassing nodig heeft. Geef aan of gelijke waarden een gemiddelde rang, een andere gedeelde rang of een secundaire sleutel krijgen. Vraag vóór implementatie om voorbeelden, zodat het gekozen beleid zichtbaar en testbaar is.
Waarom de relatie met de oorspronkelijke invoervolgorde behouden?
Een afnemer moet mogelijk elke rang koppelen aan het record dat de waarde leverde. Controleer die koppeling expliciet; een correct gesorteerde reeks kan resultaten toch aan verkeerde records toewijzen als posities niet worden hersteld.
Kunnen ongeldige getallen gewoon achteraan worden gesorteerd?
Alleen als dat je vastgelegde beleid is en afnemers het begrijpen. Vereis anders afwijzing of een andere expliciete weergave. Onderzoek numerieke validatie samen met de rangschikkingscode, in plaats van vergelijkingsgedrag tijdens uitvoering de toepassingsregel te laten bepalen.
Hoe beoordeel ik een herstructurering van rangschikkingscode zonder grote dataset?
Begin met enkele handmatig controleerbare gevallen met gelijke waarden, verschillende waarden en lege invoer. Gebruik daarna waar nodig representatieve projectgegevens. Kleine gevallen maken beleidsverschillen eenvoudiger herkenbaar voordat bredere validatie meer volume toevoegt.
RankTrell · Bijgewerkt 2026-10-25