Mittlere Ränge bei Gleichständen
Vergeben Sie mittlere Ränge ab eins für höchstens 1000 endliche numerische Werte unter Beibehaltung ihrer Positionen.
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 resultVor dem Anwenden prüfen
Vergleichen Sie das tatsächliche Verhalten mit dem erwarteten Ergebnis. Klären Sie fehlgeschlagene Prüfungen vor weiteren Änderungen.
Modelle
Richten Sie einen OpenAI-kompatiblen oder Anthropic-Endpunkt mit Basis-URL und gegebenenfalls API-Schlüssel ein. Testen Sie die Verbindung. Ein lokaler Modellserver muss laufen; entfernte Werkzeuge können Daten separat übertragen.
Projekt
Prüfen Sie Gleichstände, negative Werte und leere Eingaben und weisen Sie boolesche sowie nicht endliche Gleitkommawerte vor dem Sortieren zurück.
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 resultGleichen Werten einen ausdrücklichen Platz im Ergebnis geben
RankTrell ist eine KI-Programmierumgebung für Windows für Entwickler, die Datenregeln in Implementierungsänderungen übersetzen. Öffnen Sie Ihr Projekt und beschreiben Sie den Umgang der Anwendung mit gleichen Werten, fehlenden Ergebnissen und dem Verhältnis zwischen Eingabe- und Ausgabereihenfolge. Lassen Sie das verbundene Modell Berechnung und nutzenden Code prüfen, damit der Vorschlag die fachliche Regel erfüllt, statt lediglich eine sortierte Liste zu erzeugen.
Der Kontext von ranks.py legt eine Aufgabe zu mittleren Rängen bei gleichen Werten nahe. Sie könnten eine Erklärung verlangen, wie Ergebnisse ursprünglichen Positionen zugeordnet werden, und anschließend eine gezielte Änderung anfordern, falls Ihr Projekt anders arbeitet. Kleine Beispiele mit bekannten Antworten halten das Gespräch konkret. Prüfen Sie sowohl die Gleichstandsregel als auch die an den Rest der Anwendung zurückgegebene Darstellung.
Sobald die Implementierung prüfbar ist, führen Sie Projektprüfungen mit gleichen und negativen Werten sowie Eingaben aus, die die Funktion ablehnen soll. Vergleichen Sie tatsächliche Ergebnisse mit den vor der Änderung vereinbarten Beispielen. RankTrell unterstützt OpenAI-kompatible oder Anthropic-Modellendpunkte mit nötigen Zugangsdaten. Sie können ein über diese Verbindung angebotenes uneingeschränktes KI-Modell unter den Bedingungen seines Anbieters wählen; Werkzeuge und Kontextgrenzen hängen von Modell und Server ab. Ein klares erwartetes Ergebnis ist hilfreicher als Vertrauen in eine generierte Erklärung.
Rangregeln vor der Codeabnahme klären
Sollten gleiche Werte unterschiedliche Positionen erhalten?
Das hängt von der benötigten Rangregel ab. Legen Sie fest, ob gleiche Werte einen mittleren Rang, einen anderen gemeinsamen Rang oder einen sekundären Schlüssel erhalten. Fordern Sie vor der Implementierung Beispiele an, damit die gewählte Regel sichtbar und testbar ist.
Warum den Bezug zur ursprünglichen Eingabereihenfolge erhalten?
Nutzender Code muss möglicherweise jeden Rang dem Datensatz zuordnen, aus dem der Wert stammt. Prüfen Sie diese Zuordnung ausdrücklich: Auch eine korrekt sortierte Sequenz kann Ergebnisse falschen Datensätzen zuordnen, wenn Positionen nicht wiederhergestellt werden.
Können ungültige Zahlen einfach ans Ende sortiert werden?
Nur wenn dies Ihre festgelegte Regel ist und der nutzende Code sie versteht. Andernfalls verlangen Sie Ablehnung oder eine andere ausdrückliche Darstellung. Prüfen Sie Zahlenvalidierung gemeinsam mit dem Rangcode, statt Vergleichsverhalten zur Laufzeit die Anwendungsregel bestimmen zu lassen.
Wie prüfe ich eine Überarbeitung der Rangberechnung ohne großen Datensatz?
Beginnen Sie mit wenigen von Hand prüfbaren Fällen mit Gleichständen, unterschiedlichen Werten und leerer Eingabe. Verwenden Sie anschließend nach Bedarf repräsentative Projektdaten. Kleine Fälle machen Regelunterschiede sichtbar, bevor breitere Prüfungen die Datenmenge erhöhen.
RankTrell · Aktualisiert 2026-10-25