Auswahl über gewichtete Tickets
Ordne ein ganzzahliges Ticket einem Index nichtnegativer ganzzahliger Gewichte zu.
from bisect import bisect_right
def ticket_index(weights, ticket):
if any(type(w) is not int or w < 0 for w in weights):
raise ValueError("nonnegative integer weights")
bounds, total = [], 0
for weight in weights:
total += weight
bounds.append(total)
if type(ticket) is not int or not 0 <= ticket < total:
raise ValueError("ticket outside total")
return bisect_right(bounds, ticket)Projekt
Prüfe Nullgewichte und kumulative Grenzen und lehne eine Nullsumme oder Tickets außerhalb der Summe ohne Zufallsziehung ab.
Vor 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.
from bisect import bisect_right
def ticket_index(weights, ticket):
if any(type(w) is not int or w < 0 for w in weights):
raise ValueError("nonnegative integer weights")
bounds, total = [], 0
for weight in weights:
total += weight
bounds.append(total)
if type(ticket) is not int or not 0 <= ticket < total:
raise ValueError("ticket outside total")
return bisect_right(bounds, ticket)Auswahllogik reproduzierbar prüfen
WeightSpruce verbindet Anwendungslogik und ein KI-Gespräch in einer Programmierumgebung für Windows. Es ist nützlich, wenn eine Auswahlregel plausibel wirkt, ihre Grenzfälle aber sorgfältig untersucht werden müssen. Öffnen Sie den Projektordner und lassen Sie Ihr verbundenes Modell die Entscheidung von gelieferten Eingaben bis zum Rückgabewert verfolgen, einschließlich der Reaktion der Aufrufer, wenn keine gültige Auswahl existiert.
Das Beispiel tickets.py unterstützt eine Anfrage zur gewichteten Ticketauswahl. Liefern Sie eine kleine Gewichtsliste und konkrete Ticketpositionen und fragen Sie, ob jede dem vorgesehenen Eintrag zugeordnet wird. Behandeln Sie Nullgewichte und Grenzpositionen als Teil des Vertrags. Dies ist eine konkrete Projektübung, kein eingebauter Zuteilungsdienst. Die Prüfung sollte das Ergebnis der Hilfsfunktion mit dem von ihr gesteuerten Anwendungsverhalten verbinden.
Uneingeschränkte KI ist eine Option der Modellwahl, wenn Ihr unterstützter OpenAI-kompatibler oder Anthropic-Endpunkt ein solches Modell anbietet. Konfigurieren Sie Adresse und erforderliche Zugangsdaten; Werkzeugzugriff und Kontext bestimmt der Dienst. Prüfen Sie die Änderungen vor deterministischen Tests, die Grenzfehler aufdecken. Nutzt Ihre Anwendung auch zufällige Eingaben, bewerten Sie diese Quelle getrennt. Ticketzuordnung und Zufälligkeit auseinanderzuhalten erleichtert das Verständnis, welchen Baustein ein Test tatsächlich prüft.
Eine Änderung gewichteter Auswahl prüfen
Kann ich Ticketzuordnung ohne Zufallsstichproben testen?
Ja. Verwenden Sie bekannte Gewichte und ausdrückliche Ticketpositionen für erste, letzte und Grenzfälle. Das prüft die Zuordnung direkt. Zufallsversuche können ergänzen, aber einen schmalen Off-by-one-Fehler übersehen und Fehler schwerer reproduzierbar machen.
Was soll geschehen, wenn alle Gewichte null sind?
Definieren Sie dieses Ergebnis im Vertrag des Aufrufers. Bei einer Gesamtsumme von null existiert kein gültiges Ticket; Ablehnung oder ein separat festgelegter Ersatzfall müssen bewusst behandelt werden. Lassen Sie das Modell den Fehlerpfad ebenso verfolgen wie gewöhnliche Auswahlen.
Beweist korrekte Zuordnung eine faire Zufallsauswahl?
Nein. Zuordnung und Ticketerzeugung sind getrennte Bausteine. Prüfen Sie den erforderlichen Bereich und die Eigenschaften der Eingabequelle und testen Sie dann die Integration. Leiten Sie Verteilungsgarantien nicht allein daraus ab, dass die Hilfsfunktion für feste Tickets den erwarteten Eintrag liefert.
Welche Aufrufer müssen nach einer Grenzkorrektur geprüft werden?
Untersuchen Sie Verbraucher, die den zurückgegebenen Index interpretieren oder den Ticketbereich erstellen. Prüfen Sie Annahmen über ausgeschlossene Einträge und leere Eingaben. Hilfsfunktion und Aufrufer müssen sich vor Annahme des Patches darüber einig sein, ob die obere Grenze eingeschlossen ist.
WeightSpruce · Aktualisiert 2026-10-25