![Page 1: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/1.jpg)
Recursie:De torens van Hanoi
Lesgever: Tineke Broekaert
![Page 2: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/2.jpg)
Herhaling
• Recursie? algoritme roept zichzelf op opgeroepen probleem kleiner dan origineel 2 delen: basisgeval en recursief gedeelte oplossing: Eerst basisgeval behandelen! voorbeeld: n! = n(n-1)!
![Page 3: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/3.jpg)
De torens van Hanoi
hulp bron doel
1 2 3
![Page 4: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/4.jpg)
De torens van Hanoi
hulp bron doel
Voorwaarden: 1 schijf verplaatsen per beurt geen grote staaf op kleinere plaatsen
1 2 3
![Page 5: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/5.jpg)
De torens van Hanoi
hulp bron doel
1 2 3
![Page 6: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/6.jpg)
De torens van Hanoi
hulp bron doel
1 2 3
![Page 7: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/7.jpg)
De torens van Hanoi
hulp bron doel
1 2 3
![Page 8: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/8.jpg)
De torens van Hanoi
hulp bron doel
1 2 3
![Page 9: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/9.jpg)
De torens van Hanoi
hulp bron doel
1 2 3
![Page 10: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/10.jpg)
De torens van Hanoi
hulp bron doel
1 2 3
BASISGEVAL: 1 schijf verplaatst
![Page 11: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/11.jpg)
De torens van Hanoi
hulp bron doel
1 2 3
![Page 12: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/12.jpg)
De torens van Hanoi
hulp bron doel
1 2 3
toren van 2 schijven verplaatst
![Page 13: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/13.jpg)
De torens van Hanoi
hulp bron doel
1 2 3
![Page 14: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/14.jpg)
De torens van Hanoi
hulp bron doel
1 2 3
![Page 15: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/15.jpg)
De torens van Hanoi
hulp bron doel
1 2 3
![Page 16: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/16.jpg)
De torens van Hanoi
hulp bron doel
1 2 3
Toren van drie schijven verplaatst
![Page 17: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/17.jpg)
De torens van Hanoi
hulp bron doel
1 2 3
![Page 18: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/18.jpg)
De torens van Hanoi
hulp bron doel
1 2 3
Toren van 4 schijven verplaatst
![Page 19: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/19.jpg)
De torens van Hanoi
• Probleem opsplitsen in deelproblemen
• Algoritme:Als N = 1 enige schijf verplaatst
Als N > 1
- Verplaats bovenste n-1 schijven van bron- naar hulpstaaf - Verplaats onderste schijf van begin- naar doelstaaf - Verplaats n-1 schijven van hulp- naar doelstaaf
recursie!!
recursie!!
basisgeval!!
![Page 20: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/20.jpg)
Implementatie in Logo
• Deelproblemen? beginsituatie: staven en schijven op het scherm tekenen verplaatsen van schijven:
• schijf afhalen van staaf • schijf toevoegen aan staaf
beginsituatie
HANOI
verplaatsSchijven
basisgeval
Recursieve oproep
![Page 21: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/21.jpg)
Implementatie in Logo
1. Beginsituatie to staaf : staaf : aantalSchijven
setpc [255 0 0] setfc [255 0 0]positie 300*(:staaf-2) 0repeat 2 [fd 20+:aantalschijven*20 rt 90 fd 30 rt 90]rt 10 fd 5 fill lt 10
test : staaf 1 5 staaf 2 5 staaf 3 5
WAAROM
![Page 22: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/22.jpg)
Implementatie in Logo voegToeSchijf : staaf :schijf
setpc [0 0 255] setfc [0 0 255]positie 300*(:staaf-2)-(10*:schijf) (item :staaf :staven)*20repeat 2 [fd 15 rt 90 fd 30+20*:schijf rt 90]rt 10 fd 5fillpositie 300*(:staaf-2)+5 (item :staaf :staven)*20+5fillpositie 300*(:staaf-2)+35 (item :staaf :staven)*20+5filllt 10setItem :staaf :staven (item :staaf :staven)+1
WAAROM
![Page 23: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/23.jpg)
Implementatie in Logo
• Array: 1 variabele, bevat verschillende items
index
make “arrayNaam {3 4 2}
(item 1 arrayNaam )
setItem 2 arrayNaam 10
3
{3 10 2}
![Page 24: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/24.jpg)
Implementatie in Logo
test: make “staven{0 0 0}staaf 1 5staaf 2 5staaf 3 5
voegToeSchijf 2 5 voegToeSchijf 2 4 voegToeSchijf 2 3 voegToeSchijf 2 2 voegToeSchijf 2 1
KORTER?
make “aantalSchijven 5repeat :aantalschijven [voegtoeSchijf 2 :aantalschijven make "aantalschijven :aantalschijven-1]
![Page 25: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/25.jpg)
Implementatie in Logo
cs htmake "staven {0 0 0}staaf 1 :aantalschijvenstaaf 2 :aantalschijvenstaaf 3 :aantalschijvenrepeat :aantalschijven [voegtoeSchijf 2 :aantalschijven make "aantalschijven :aantalschijven-1]
to beginSituatie :aantalschijven
beginsituatie
HANOI
verplaatsSchijven
![Page 26: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/26.jpg)
Implementatie in Logo
2. Verplaatsen van schijven
to verplaatsSchijf :bronstaaf :doelstaaf :schijf
verwijderSchijf : bronstaafvoegToeSchijf :doelstaaf :schijf
Basisgeval: verplaats 1 schijf
Procedure verwijderSchijf
![Page 27: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/27.jpg)
Implementatie in Logo
setItem :staaf :staven (item :staaf :staven)-1
; schijf wissensetfc [255 255 255] positie 300*(:staaf-2) (item :staaf :staven)*20+5fill
; paal terugkleurenpositie 300*(:staaf-2) (item :staaf :staven)*20setpc [255 0 0] setfc [255 0 0]repeat 2 [fd 15 rt 90 fd 30 rt 90]rt 10 fd 5 filllt 10
to verwijderSchijf :staaf test: verwijderSchijf 2
![Page 28: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/28.jpg)
Implementatie in Logo
To verplaatsSchijven :aantalschijven :bronstaaf :doelstaaf :hulpstaaf
ifelse :aantalschijven = 1 [ verplaatsSchijf :bron :doel :aantalschijven ] [ verplaatsSchijven :aantalschijven-1 :bron :hulp :doel verplaatsSchijf :bron :doel :aantalschijven verplaatsSchijven :aantalschijven-1 :hulp :doel :bron]
procedure verplaatsSchijven
![Page 29: Recursie: De torens van Hanoi Lesgever: Tineke Broekaert](https://reader036.vdocuments.pub/reader036/viewer/2022062418/5551a0ef4979591f3c8b9c5d/html5/thumbnails/29.jpg)
Implementatie in Logo
beginSituatie :aantalSchijvenverplaatsSchijven :aantalSchijven 2 3 1
to hanoi :aantalschijven
3. Oplossing