RRankTrell
AI-werkruimte voor code

Gemiddelde rangen bij gelijke waarden

Ken gemiddelde rangen vanaf één toe aan maximaal 1000 eindige numerieke waarden met behoud van hun posities.

● ● ●RankTrell●
Werkprocessen · Gemiddelde rangen bij gelijke waarden ×
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 result
✳Ken gemiddelde rangen vanaf één toe aan maximaal 1000 eindige numerieke waarden met behoud van hun posities.
✓ WijzigingenControleer vóór het toepassen ↗
Illustratie van de werkruimte
  1. Controleer vóór het toepassen

    Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.

  2. 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.

  3. Project

    Test gelijke waarden, negatieve waarden en lege invoer en weiger booleaanse waarden en niet-eindige kommagetallen vóór het sorteren.

Werkprocessen

Gemiddelde rangen bij gelijke waarden

Werkprocessen ↗
Werkprocessen
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 result
AI-werkruimte voor code

Geef 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.

Download voor Windows ↗

RankTrell · Bijgewerkt 2026-10-25