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.
Verteilen Sie bis zu 10000 Sitze auf höchstens 1000 nicht negative ganzzahlige Gewichte nach größten Resten.
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 resultRichten 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.
Prüfen Sie Nullgewichte und gleiche Reste mit Eingabereihenfolge als Entscheidung und weisen Sie positive Zuteilung bei Gesamtgewicht null vor der Division zurück.
Vergleichen Sie das tatsächliche Verhalten mit dem erwarteten Ergebnis. Klären Sie fehlgeschlagene Prüfungen vor weiteren Änderungen.
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 resultEine Zuteilungsroutine kann die Gesamtsumme erfüllen und einzelne Anteile dennoch anders verteilen, als Nutzer es erwarten. QuotaMosaic ist KI-Programmiersoftware für Windows, um diese Unterscheidung in Ihrem eigenen Projekt zu untersuchen. Bringen Sie Implementierung, Aufrufer und einige erwartete Zuteilungen ins Gespräch ein, bevor Sie eine Quellcodeänderung anfordern.
Eine Prüfaufgabe ist die Verteilung nach größten Resten, bei der ganze Einheiten anhand nicht negativer Gewichte zugewiesen werden. Lassen Sie das verbundene Modell untersuchen, wie Grundzuteilung und verbleibende Einheiten zusammenpassen. Fügen Sie ein Beispiel mit gleichen Resten hinzu und nennen Sie die Gleichstandsregel ausdrücklich, damit eine geänderte Reihenfolge das Ergebnis nicht unbemerkt verändert.
Prüfen Sie die Schnittstelle ebenso sorgfältig wie die Arithmetik. Legen Sie fest, was leere Eingaben oder eine Gewichtssumme von null bedeuten, wenn Einheiten angefordert werden, und prüfen Sie den Fehlerweg zum Aufrufer. Führen Sie Projektprüfungen mit kleinen, unabhängig verifizierten Beispielen aus und prüfen Sie Endsumme wie Einzelzuteilungen. Die Erhaltung einer Invariante beweist nicht die andere.
QuotaMosaic verbindet sich mit unterstützten OpenAI-kompatiblen oder Anthropic-Endpunkten. Ein abliteriertes KI-Modell lässt sich wählen, sofern verfügbar; Fähigkeiten und Grenzen bestimmen Modell und Server. Nutzen Sie das Modell zur Untersuchung der Regeln und Vorbereitung einer überprüfbaren Änderung und verifizieren Sie anschließend das Verhalten in Ihrer Anwendung.
Legen Sie fest, wie gleiche Reste geordnet werden und ob die ursprüngliche Eingabereihenfolge zählt. Geben Sie ein Gleichstandsbeispiel mit erwarteter Zuteilung an. Sonst kann eine scheinbar harmlose Sortieränderung verändern, welcher Empfänger die letzte Einheit erhält.
Nein. Verschiedene Zuteilungen können dieselbe Gesamtsumme haben. Prüfen Sie die Menge je Empfänger und das Ergebnis bei Gleichständen. Nutzen Sie unabhängige Sollbeispiele, statt im Test nur die Berechnung der Implementierung zu wiederholen.
Legen Sie getrennte Erwartungen für null angeforderte Einheiten und eine positive Anzahl fest. Prüfen Sie mit dem Aufrufer die bestehende Fehlervereinbarung. Das Modell sollte keine Empfänger erfinden oder durch eine undefinierte Summe teilen, nur damit die Funktion etwas zurückgibt.
Es definiert einen bestimmten Prüfkontext mit ganzen Einheiten und nicht negativen Gewichten. Hat Ihre Anwendung Obergrenzen, Mindestmengen oder andere Prioritäten, nennen Sie sie ausdrücklich. Prüfen Sie, ob die vorgeschlagene Änderung weiterhin die von Ihren Nutzern benötigte Regel umsetzt.
QuotaMosaic · Aktualisiert 2026-10-25