PPackSerein
AI-werkruimte voor code

Waarde van het nul-een-rugzakprobleem

Maximaliseer de waarde van maximaal 64 gewicht-waardeparen bij een gehele capaciteit van nul tot en met 1000, met elk voorwerp eenmaal.

● ● ●PackSerein●
Werkprocessen · Waarde van het nul-een-rugzakprobleem ×
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]
✳Maximaliseer de waarde van maximaal 64 gewicht-waardeparen bij een gehele capaciteit van nul tot en met 1000, met elk voorwerp eenmaal.
✓ WijzigingenControleer vóór het toepassen ↗
Illustratie van de werkruimte
  1. Controleer vóór het toepassen

    Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.

  2. Modellen

    Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.

  3. Project

    Test capaciteit nul en een te zwaar voorwerp, en weiger nulgewichten of niet-gehele operanden voordat de tabel wordt opgebouwd.

Werkprocessen

Waarde van het nul-een-rugzakprobleem

Werkprocessen ↗
Werkprocessen
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]
AI-werkruimte voor code

Onderscheid de selectieregel van de code die haar implementeert

PackSerein ondersteunt softwareontwikkeling met AI in een Windows-projectwerkruimte waar optimalisatievereisten naast implementatiebestanden kunnen worden besproken. Beschrijf wat mag worden geselecteerd, welke voorwaarden verplicht zijn en welk resultaat de aanroepende code werkelijk nodig heeft. Laat de assistent de huidige representatie inspecteren voordat de oplosser wordt gewijzigd. Een duidelijk doel voorkomt dat een aannemelijke implementatie een subtiel ander probleem oplost.

Het voorbeeld knapsack.py biedt een beoordelingstaak waarin elk item hoogstens eenmaal kan worden gekozen binnen een capaciteitsgrens. U kunt vragen of een voorgestelde wijziging die regel behoudt en of de toepassing alleen een waarde of ook de gekozen items nodig heeft. Werk een klein geval met de hand uit en toets de code eraan. Houd invoergrenzen en afgewezen waarden onderdeel van dezelfde beoordeling.

Voer zodra de wijziging klaar is de projecttests uit voor een lege selectie, een capaciteitsgrens en concurrerende combinaties. Controleer het uitvoercontract voordat u de gebruikende code aanpast. PackSerein ondersteunt OpenAI-compatibele of Anthropic-eindpunten en inloggegevens waar nodig. Een ongefilterd AI-model kan worden geselecteerd als het via uw verbinding beschikbaar is; beperkingen, contextlimieten en ondersteuning voor hulpmiddelen blijven afhankelijk van het model en de server. De werkruimte helpt de programmeerbeslissing te structureren, terwijl uw controles bepalen of zij aan het doel voldoet.

Vragen die een optimalisatietaak definiëren

Waarom aangeven of een item tweemaal kan worden geselecteerd?

Herhaalde selectie toestaan verandert het probleem en kan het resultaat veranderen. Zet die voorwaarde in het verzoek en test een klein geval waarin herhaling een ander antwoord zou opleveren. Inspecteer vervolgens of de wijziging de voorwaarde behoudt.

Is een optimale waarde voldoende voor de toepassing?

Dat hangt af van de aanroepende code. Sommige gebruikers van de functie hebben alleen de score nodig, andere ook de geselecteerde items. Geef de vereiste uitvoer aan voordat u om wijzigingen vraagt, zodat de assistent niet aanneemt dat één getal de functie compleet maakt.

Hoe ga ik om met oplossingen van gelijke waarde?

Bepaal of elk geldig optimum aanvaardbaar is of dat de toepassing een deterministische regel bij gelijke waarden nodig heeft. Als geselecteerde items worden teruggegeven, test gelijke waarden dan expliciet en beoordeel de regel in plaats van op toevallige iteratievolgorde te vertrouwen.

Kan het voorbeeld prestaties van een grootschalige oplosser aantonen?

Nee. Gebruik het om een begrensde implementatie te bespreken en evalueer daarna het echte project op de vereiste omvang. Een klein correct geval en een AI-uitleg tonen niet het tijds- of geheugengedrag op een andere schaal aan.

Download voor Windows ↗

PackSerein · Bijgewerkt 2026-10-25