Rangs moyens des ex æquo
Attribuez des rangs moyens commençant à un à au plus 1000 valeurs numériques finies en conservant leurs positions.
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 resultVérifiez avant d’appliquer
Comparez le comportement observé au résultat attendu. Si une vérification échoue, cherchez la cause avant de poursuivre les modifications.
Modèles
Configurez un endpoint compatible OpenAI ou Anthropic avec son URL de base et une clé API si nécessaire. Testez la connexion. Un serveur local doit fonctionner ; les outils distants peuvent transmettre des données séparément.
Projet
Testez ex æquo, négatifs et entrée vide, en rejetant booléens et flottants non finis avant le tri.
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 resultDonnez aux valeurs égales une place explicite dans le résultat
RankTrell est un espace de programmation avec IA pour Windows destiné aux développeurs qui traduisent des règles de données en modifications d’implémentation. Ouvrez le projet et décrivez comment l’application doit traiter les valeurs égales, les résultats manquants et la relation entre l’ordre d’entrée et de sortie. Demandez au modèle connecté d’examiner le calcul et ses consommateurs, afin que la proposition réponde à la règle métier plutôt que de produire simplement une liste triée.
Le contexte de ranks.py suggère une tâche portant sur les rangs moyens des valeurs ex æquo. Vous pouvez demander une explication de la correspondance des résultats avec les positions d’origine, puis une modification ciblée si votre projet se comporte autrement. Utilisez de petits exemples aux réponses connues pour garder la discussion concrète. Examinez à la fois la politique des ex æquo et la représentation retournée au reste de l’application.
Quand l’implémentation est prête à être examinée, exécutez les vérifications du projet sur des valeurs égales, des valeurs négatives et des entrées que la fonction doit rejeter. Comparez les résultats réels aux exemples convenus avant les modifications. RankTrell prend en charge les points de terminaison de modèles compatibles OpenAI ou Anthropic, avec des identifiants si nécessaire. Vous pouvez choisir un modèle d’IA sans restrictions proposé via cette connexion, sous réserve des conditions du fournisseur ; les outils et limites de contexte dépendent du modèle et du serveur. Un résultat attendu clair reste plus utile que la confiance dans une explication générée.
Règles de classement à fixer avant d’accepter le code
Les valeurs ex æquo doivent-elles recevoir des positions différentes ?
Cela dépend de la règle de classement nécessaire à votre application. Précisez si les ex æquo partagent un rang moyen, un autre rang ou sont départagés par une clé secondaire. Demandez des exemples avant l’implémentation pour rendre la politique choisie visible et testable.
Pourquoi préserver le lien avec l’ordre d’entrée d’origine ?
Un consommateur peut devoir associer chaque rang à l’enregistrement ayant fourni la valeur. Vérifiez explicitement cette correspondance ; une séquence correctement triée peut encore attribuer les résultats aux mauvais enregistrements si les positions ne sont pas rétablies.
Les nombres invalides peuvent-ils simplement être triés à la fin ?
Uniquement si telle est la politique spécifiée et si les consommateurs la comprennent. Sinon, exigez un rejet ou une autre représentation explicite. Examinez la validation numérique avec le code de classement au lieu de laisser le comportement des comparaisons à l’exécution définir la règle applicative.
Comment examiner une refactorisation du classement sans grand jeu de données ?
Commencez par quelques cas vérifiables à la main contenant des ex æquo, des valeurs distinctes et une entrée vide. Utilisez ensuite des données représentatives du projet si nécessaire. Les petits cas facilitent l’identification des différences de politique avant d’ajouter le volume d’une validation plus large.
RankTrell · Mis à jour 2026-10-25