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.
Répartissez au plus 10000 sièges entre au plus 1000 poids entiers non négatifs par les plus forts restes.
def allocate(weights, seats):
if type(weights) not in (list, tuple) or len(weights) > 1000:
raise ValueError("weights.container")
weights = tuple(weights)
if type(seats) is not int or not 0 <= seats <= 10000:
raise ValueError("seats.range")
if len(weights) > 1000 or any(type(w) is not int or w < 0 for w in weights):
raise ValueError("weights.invalid")
total = sum(weights)
if total == 0:
if seats:
raise ValueError("weight.zero")
return [0] * len(weights)
result = [w * seats // total for w in weights]
remaining = seats - sum(result)
order = sorted(range(len(weights)), key=lambda i: (-(weights[i] * seats % total), i))
for i in order[:remaining]:
result[i] += 1
return resultConfigurez 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.
Testez poids nuls et restes égaux départagés par ordre d’entrée, en rejetant une allocation positive de poids total nul avant division.
Comparez le comportement observé au résultat attendu. Si une vérification échoue, cherchez la cause avant de poursuivre les modifications.
def allocate(weights, seats):
if type(weights) not in (list, tuple) or len(weights) > 1000:
raise ValueError("weights.container")
weights = tuple(weights)
if type(seats) is not int or not 0 <= seats <= 10000:
raise ValueError("seats.range")
if len(weights) > 1000 or any(type(w) is not int or w < 0 for w in weights):
raise ValueError("weights.invalid")
total = sum(weights)
if total == 0:
if seats:
raise ValueError("weight.zero")
return [0] * len(weights)
result = [w * seats // total for w in weights]
remaining = seats - sum(result)
order = sorted(range(len(weights)), key=lambda i: (-(weights[i] * seats % total), i))
for i in order[:remaining]:
result[i] += 1
return resultUne routine de répartition peut respecter le total tout en distribuant les parts autrement que selon la règle attendue par les utilisateurs. QuotaMosaic est un logiciel de programmation avec IA pour Windows permettant d’examiner cette distinction dans votre projet. Apportez l’implémentation, l’appelant et quelques répartitions attendues à la conversation avant de demander une modification du code.
Une tâche de revue possible est la répartition au plus fort reste, où des unités entières doivent être attribuées à partir de poids non négatifs. Demandez au modèle connecté d’examiner l’articulation entre la répartition de base et les unités restantes. Incluez un exemple de restes égaux et énoncez explicitement la règle de départage pour qu’un changement d’ordre ne modifie pas discrètement le résultat.
Examinez l’interface aussi attentivement que l’arithmétique. Définissez le sens d’une entrée vide ou d’un total nul lorsque des unités sont demandées, puis examinez comment les échecs parviennent à l’appelant. Exécutez les vérifications du projet sur de petits exemples vérifiés indépendamment et contrôlez la somme finale ainsi que les attributions individuelles. Préserver un invariant ne prouve pas que l’autre l’est.
QuotaMosaic se connecte aux points de terminaison compatibles OpenAI ou Anthropic pris en charge. Un modèle d’IA ablaté peut être sélectionné lorsqu’il est disponible, ses capacités et limites étant fixées par le modèle et le serveur. Utilisez le modèle pour examiner les règles et préparer un correctif vérifiable, puis vérifiez le comportement obtenu dans l’application.
Précisez comment sont ordonnés les restes égaux, notamment si l’ordre d’entrée initial compte. Fournissez un exemple d’égalité et la répartition attendue. Sinon, un changement de tri apparemment anodin peut changer le bénéficiaire de la dernière unité.
Non. Plusieurs répartitions peuvent donner le même total. Vérifiez aussi le montant attribué à chaque bénéficiaire et le résultat du départage. Utilisez des exemples attendus indépendants plutôt que de répéter uniquement le calcul de l’implémentation dans un test.
Définissez des attentes distinctes pour une demande de zéro unité et une demande positive. Examinez le contrat d’échec existant avec l’appelant. Le modèle ne doit pas inventer de bénéficiaires ni diviser par un total indéfini pour forcer un résultat.
Il définit un contexte particulier de revue avec des unités entières et des poids non négatifs. Si l’application comporte des plafonds, des minimums ou d’autres priorités, précisez-les explicitement. Examinez si la modification proposée applique toujours la politique nécessaire aux utilisateurs.
QuotaMosaic · Mis à jour 2026-10-25