PPackSerein
KI-Arbeitsumgebung für Code

Wert des Null-Eins-Rucksacks

Maximiere den Wert von höchstens 64 Gewicht-Wert-Paaren bei einer ganzzahligen Kapazität von null bis 1000, wobei jedes Objekt einmal verwendet wird.

● ● ●PackSerein●
Arbeitsabläufe · Wert des Null-Eins-Rucksacks ×
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]
✳Maximiere den Wert von höchstens 64 Gewicht-Wert-Paaren bei einer ganzzahligen Kapazität von null bis 1000, wobei jedes Objekt einmal verwendet wird.
✓ ÄnderungenVor dem Anwenden prüfen ↗
Illustration der Arbeitsumgebung
  1. Vor dem Anwenden prüfen

    Vergleichen Sie das tatsächliche Verhalten mit dem erwarteten Ergebnis. Klären Sie fehlgeschlagene Prüfungen vor weiteren Änderungen.

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

  3. Projekt

    Prüfe Kapazität null und ein zu schweres Objekt, und lehne Nullgewichte oder nicht ganzzahlige Operanden vor dem Tabellenaufbau ab.

Arbeitsabläufe

Wert des Null-Eins-Rucksacks

Arbeitsabläufe ↗
Arbeitsabläufe
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]
KI-Arbeitsumgebung für Code

Auswahlregel und implementierenden Code unterscheiden

PackSerein unterstützt KI-gestützte Softwarearbeit in einem Windows-Projektarbeitsbereich, in dem Optimierungsanforderungen neben Implementierungsdateien besprochen werden können. Beschreiben Sie, was ausgewählt werden darf, welche Bedingungen verbindlich sind und welches Ergebnis der Aufrufer tatsächlich benötigt. Lassen Sie den Assistenten die aktuelle Darstellung prüfen, bevor Sie den Lösungsalgorithmus ändern. Ein klares Ziel verhindert, dass eine plausible Implementierung ein unmerklich anderes Problem löst.

Das Beispiel knapsack.py legt eine Prüfaufgabe nahe, bei der jeder Gegenstand unter einer Kapazitätsgrenze höchstens einmal gewählt werden darf. Sie könnten fragen, ob eine vorgeschlagene Änderung diese Regel bewahrt und ob die Anwendung nur einen Wert oder auch die gewählten Gegenstände benötigt. Rechnen Sie einen kleinen Fall von Hand durch und prüfen Sie den Code daran. Beziehen Sie Eingabegrenzen und zurückgewiesene Werte in dieselbe Prüfung ein.

Führen Sie nach Fertigstellung des Patches die Projekttests für eine leere Auswahl, eine Kapazitätsgrenze und konkurrierende Kombinationen aus. Prüfen Sie den Ausgabevertrag, bevor Sie den verarbeitenden Code anpassen. PackSerein akzeptiert unterstützte OpenAI-kompatible oder Anthropic-Endpunkte und bei Bedarf Zugangsdaten. Ein ungefiltertes KI-Modell kann gewählt werden, wenn Ihre Verbindung es anbietet; Einschränkungen, Kontextgrenzen und Werkzeugunterstützung hängen weiterhin von Modell und Server ab. Der Arbeitsbereich strukturiert die Programmierentscheidung; Ihre Prüfungen bestimmen, ob sie das Ziel erfüllt.

Fragen zur Definition einer Optimierungsaufgabe

Warum angeben, ob ein Gegenstand zweimal gewählt werden darf?

Wiederholte Auswahl verändert das Problem und möglicherweise das Ergebnis. Schreiben Sie diese Bedingung in den Auftrag und testen Sie einen kleinen Fall, in dem Wiederholung eine andere Antwort erzeugen würde. Prüfen Sie dann, ob die Änderung die Bedingung bewahrt.

Genügt der Anwendung ein optimaler Wert?

Das hängt vom Aufrufer ab. Manche benötigen nur den Wert, andere auch die ausgewählten Gegenstände. Legen Sie die benötigte Ausgabe vor Änderungswünschen fest, damit der Assistent nicht annimmt, eine einzelne Zahl vervollständige die Funktion.

Wie gehe ich mit gleichwertigen Lösungen um?

Definieren Sie, ob jedes gültige Optimum akzeptabel ist oder eine deterministische Gleichstandsregel benötigt wird. Werden ausgewählte Gegenstände zurückgegeben, testen Sie Gleichstände ausdrücklich und prüfen Sie die Regel, statt sich auf zufällige Iterationsreihenfolgen zu verlassen.

Kann das Beispiel die Leistung eines Lösers im großen Maßstab belegen?

Nein. Besprechen Sie damit eine begrenzte Implementierung und bewerten Sie dann das tatsächliche Projekt unter den erforderlichen Größen. Ein kleiner korrekter Fall und eine KI-Erklärung belegen weder Laufzeit noch Speicherverhalten in anderem Maßstab.

Für Windows herunterladen ↗

PackSerein · Aktualisiert 2026-10-25