10.7 Bouwsteen 4 — vul de hele tabel
Leerdoel: je voegt een buitenste lus toe die alle rijen invult. Met de bouwstenen van pagina 5 en 6 wordt dit één regel werk extra.
Wat we willen
De tabel volledig invullen. Rij 0 is al 0-vector (vanaf pagina 5),
rij 1 t/m n vullen we via vul_rij uit pagina 6.
for i in range(1, n + 1):
vul_rij(tabel, items, i, capaciteit)
Vier woorden meer dan vorige stap.
Waarom range(1, n + 1)?
- Start bij 1: rij 0 is al klaar (basisgeval).
- Eind bij
n + 1: we willen ook rijn(de laatste rij) invullen, enrangeis exclusief aan de bovenkant.
Specificatie
- Input:
tabel,items,capaciteit. - Output: niets. We muteren
tabelter plekke.
Voorspel
We runnen vul_volledige_tabel op het image-voorbeeld. Wat staat er
straks in tabel[5][11]?
Antwoord
40 — de beste totaalwaarde voor 5 items binnen W=11.
Dat is de eindcel die je op pagina 02 met de hand uitrekende.
Bouw zelf en test
Code-omgeving wordt voorbereid…
Tip
def vul_volledige_tabel(tabel, items, capaciteit):
n = len(items)
for i in range(1, n + 1):
vul_rij(tabel, items, i, capaciteit)
Drie regels. Geen subtiliteiten — gewoon vul_rij aanroepen voor elke
rij in stijgende volgorde.
Onderzoek
Print de tabel rij voor rij om hem visueel te controleren met pagina 02:
Code-omgeving wordt voorbereid…
Verwachte uitvoer
0 1 2 3 4 5 6 7 8 9 10 11
i=0: 0 0 0 0 0 0 0 0 0 0 0 0
i=1: 0 1 1 1 1 1 1 1 1 1 1 1
i=2: 0 1 6 7 7 7 7 7 7 7 7 7
i=3: 0 1 6 7 7 18 19 24 25 25 25 25
i=4: 0 1 6 7 7 18 22 24 28 29 29 40
i=5: 0 1 6 7 7 18 22 28 29 34 35 40
Identiek aan de hand-uitgevulde tabel uit pagina 02. ✓
Door naar stap 8: het complete algoritme →.