PPackSerein
Środowisko programowania z AI

Wartość plecaka zero-jedynkowego

Zmaksymalizuj wartość najwyżej 64 par waga-wartość przy całkowitej pojemności od zera do 1000, używając każdego przedmiotu raz.

● ● ●PackSerein●
Sposoby pracy · Wartość plecaka zero-jedynkowego ×
def knapsack_value(items, capacity):
    items = tuple(tuple(item) for item in items)
    if type(capacity) is not int or not 0 <= capacity <= 1000:
        raise ValueError("capacity.range")
    if len(items) > 64 or any(len(item) != 2 for item in items):
        raise ValueError("items.shape")
    if any(type(w) is not int or type(v) is not int or not 1 <= w <= 1000 or not 0 <= v <= 1000000 for w, v in items):
        raise ValueError("item.range")
    best = [0] * (capacity + 1)
    for weight, value in items:
        for limit in range(capacity, weight - 1, -1):
            best[limit] = max(best[limit], best[limit - weight] + value)
    return best[capacity]
✳Zmaksymalizuj wartość najwyżej 64 par waga-wartość przy całkowitej pojemności od zera do 1000, używając każdego przedmiotu raz.
✓ ZmianySprawdź przed zastosowaniem ↗
Ilustracja środowiska
  1. Sprawdź przed zastosowaniem

    Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.

  2. 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.

  3. Projekt

    Sprawdź pojemność zero i zbyt ciężki przedmiot, odrzucając zerowe wagi lub niecałkowite operandy przed utworzeniem tabeli.

Sposoby pracy

Wartość plecaka zero-jedynkowego

Sposoby pracy ↗
Sposoby pracy
def knapsack_value(items, capacity):
    items = tuple(tuple(item) for item in items)
    if type(capacity) is not int or not 0 <= capacity <= 1000:
        raise ValueError("capacity.range")
    if len(items) > 64 or any(len(item) != 2 for item in items):
        raise ValueError("items.shape")
    if any(type(w) is not int or type(v) is not int or not 1 <= w <= 1000 or not 0 <= v <= 1000000 for w, v in items):
        raise ValueError("item.range")
    best = [0] * (capacity + 1)
    for weight, value in items:
        for limit in range(capacity, weight - 1, -1):
            best[limit] = max(best[limit], best[limit - weight] + value)
    return best[capacity]
Środowisko programowania z AI

Oddziel regułę wyboru od realizującego ją kodu

PackSerein wspiera pracę nad oprogramowaniem z AI w środowisku projektu dla Windows, gdzie wymagania optymalizacji można omawiać obok plików implementacji. Opisz, co można wybrać, które ograniczenia są obowiązkowe i jakiego wyniku rzeczywiście potrzebuje kod wywołujący. Przed zmianą algorytmu rozwiązującego poproś asystenta o sprawdzenie obecnej reprezentacji. Jasny cel zapobiega rozwiązywaniu nieco innego problemu przez pozornie wiarygodną implementację.

Przykład knapsack.py sugeruje zadanie przeglądu, w którym każdy przedmiot można wybrać najwyżej raz przy ograniczonej pojemności. Możesz zapytać, czy proponowana zmiana zachowuje tę regułę i czy aplikacja potrzebuje tylko wartości, czy także wybranych przedmiotów. Rozwiąż mały przypadek ręcznie, a potem sprawdź kod względem niego. Uwzględnij granice wejść i odrzucane wartości w tym samym przeglądzie.

Gdy poprawka będzie gotowa, uruchom testy projektu dla pustego wyboru, granicy pojemności i konkurujących kombinacji. Sprawdź kontrakt wyniku przed dostosowaniem kodu odbiorcy. PackSerein obsługuje punkty końcowe zgodne z OpenAI lub punkty Anthropic oraz dane uwierzytelniające, gdy są potrzebne. Model AI bez filtrów można wybrać, jeśli jest dostępny przez Twoje połączenie; ograniczenia, limity kontekstu i obsługa narzędzi nadal zależą od modelu i serwera. Środowisko pomaga uporządkować decyzję programistyczną, a Twoje kontrole rozstrzygają, czy spełnia cel.

Pytania definiujące zadanie optymalizacji

Dlaczego określać, czy przedmiot można wybrać dwa razy?

Dopuszczenie powtarzanego wyboru zmienia problem i może zmienić wynik. Zapisz to ograniczenie w zleceniu i przetestuj mały przypadek, w którym powtórzenie dawałoby inną odpowiedź, a potem sprawdź, czy zmiana je zachowuje.

Czy optymalna wartość wystarcza aplikacji?

To zależy od kodu wywołującego. Niektórzy odbiorcy potrzebują tylko wyniku liczbowego, inni także wybranych przedmiotów. Określ wymagany wynik przed zleceniem zmian, aby asystent nie zakładał, że jedna liczba wystarcza do ukończenia funkcji.

Jak obsługiwać rozwiązania o równej wartości?

Określ, czy dopuszczalne jest dowolne poprawne optimum, czy aplikacja potrzebuje deterministycznej reguły rozstrzygania remisów. Jeśli zwracane są przedmioty, testuj remisy jawnie i oceń regułę, zamiast polegać na przypadkowej kolejności iteracji.

Czy przykład potwierdza wydajność algorytmu w dużej skali?

Nie. Wykorzystaj go do omówienia implementacji o ograniczonym zakresie, a następnie oceń rzeczywisty projekt przy wymaganych rozmiarach. Mały poprawny przypadek i wyjaśnienie AI nie potwierdzają czasu wykonania ani zużycia pamięci w innej skali.

Pobierz dla Windows ↗

PackSerein · Zaktualizowano 2026-10-25