Wybór przez ważony bilet
Przypisz całkowity bilet do indeksu nieujemnych całkowitych wag.
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
Sprawdź wagi zerowe i granice sum częściowych, odrzucając zerową sumę lub bilet poza nią bez losowania liczb.
Sprawdź przed zastosowaniem
Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.
Modele
Dodaj endpoint zgodny z OpenAI lub Anthropic, podając bazowy URL i klucz API, jeśli jest wymagany. Sprawdź połączenie. Lokalny serwer modelu musi działać; zdalne narzędzia mogą przesyłać dane oddzielnie.
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)Zapewnij odtwarzalny przegląd logiki wyboru
WeightSpruce łączy logikę aplikacji i rozmowę z AI w środowisku programistycznym dla Windows. Przydaje się, gdy reguła wyboru wygląda wiarygodnie, lecz jej przypadki brzegowe wymagają dokładnej analizy. Otwórz folder projektu i poproś podłączony model o prześledzenie decyzji od wejść do wyniku, w tym działania wywołujących, gdy poprawny wybór nie istnieje.
Przykład tickets.py może wspierać zadanie dotyczące ważonego wyboru losu. Podaj krótką listę wag i konkretne pozycje losów, a następnie zapytaj, czy każda wskazuje zamierzony element. Traktuj zerowe wagi i pozycje graniczne jako część kontraktu. To konkretne ćwiczenie projektowe, a nie wbudowana usługa przydziału. Przegląd powinien wiązać wynik funkcji z zachowaniem aplikacji, którym steruje.
AI bez ograniczeń jest opcją wyboru modelu, gdy obsługiwany punkt końcowy zgodny z OpenAI lub Anthropic oferuje taki model. Skonfiguruj jego adres i wymagane uwierzytelnienie; dostęp do narzędzi i kontekst określa usługa. Przejrzyj zmiany przed uruchomieniem deterministycznych kontroli ujawniających błędy graniczne. Jeśli aplikacja używa także losowego wejścia, oceń jego źródło osobno. Rozdzielenie odwzorowania losów i losowości ułatwia ustalenie, który komponent test rzeczywiście weryfikuje.
Sprawdzanie zmiany wyboru ważonego
Czy można testować odwzorowanie losów bez losowego próbkowania?
Tak. Użyj znanych wag i jawnych pozycji losów, aby sprawdzić pierwszy, ostatni i graniczne przypadki. To bezpośrednio weryfikuje odwzorowanie. Próby losowe mogą je uzupełniać, ale mogą pomijać wąski błąd przesunięcia o jeden i utrudniać odtwarzanie niepowodzeń.
Co powinno się stać, gdy wszystkie wagi są zerowe?
Zdefiniuj wynik w kontrakcie wywołującego. Przy sumie równej zero nie ma poprawnego losu, więc odrzucenie lub osobno określony wariant zastępczy wymagają świadomej obsługi. Poproś model o prześledzenie ścieżki błędu oraz zwykłych wyborów.
Czy poprawne odwzorowanie dowodzi bezstronnego losowania?
Nie. Odwzorowanie i generowanie losów to osobne komponenty. Przejrzyj zakres i właściwości wymagane od źródła wejścia, potem przetestuj integrację. Nie wnioskuj o gwarancjach rozkładu wyłącznie z tego, że funkcja zwraca oczekiwany element dla ustalonych losów.
Których wywołujących przejrzeć po poprawce granicy?
Sprawdź odbiorców interpretujących zwrócony indeks lub tworzących zakres losów. Poszukaj założeń o wykluczonych elementach i pustych wejściach. Funkcja i wywołujący muszą uzgodnić, czy górna granica jest włączona, zanim poprawka zostanie zaakceptowana.
WeightSpruce · Zaktualizowano 2026-10-25