De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Recursie: De torens van Hanoi

Verwante presentaties


Presentatie over: "Recursie: De torens van Hanoi"— Transcript van de presentatie:

1 Recursie: De torens van Hanoi
Lesgever: Tineke Broekaert

2 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)!

3 De torens van Hanoi hulp bron doel 3 1 2

4 De torens van Hanoi Voorwaarden: 1 schijf verplaatsen per beurt
geen grote staaf op kleinere plaatsen hulp bron doel 2 1 3

5 De torens van Hanoi hulp bron doel 3 1 2

6 De torens van Hanoi hulp bron doel 3 1 2

7 De torens van Hanoi hulp bron doel 3 1 2

8 De torens van Hanoi hulp bron doel 3 1 2

9 De torens van Hanoi hulp bron doel 3 1 2

10 BASISGEVAL: 1 schijf verplaatst
De torens van Hanoi BASISGEVAL: 1 schijf verplaatst hulp bron doel 3 1 2

11 De torens van Hanoi hulp bron doel 3 1 2

12 toren van 2 schijven verplaatst
De torens van Hanoi toren van 2 schijven verplaatst hulp bron doel 3 1 2

13 De torens van Hanoi hulp bron doel 3 1 2

14 De torens van Hanoi hulp bron doel 3 1 2

15 De torens van Hanoi hulp bron doel 3 1 2

16 Toren van drie schijven verplaatst
De torens van Hanoi Toren van drie schijven verplaatst hulp bron doel 3 1 2

17 De torens van Hanoi hulp bron doel 3 1 2

18 Toren van 4 schijven verplaatst
De torens van Hanoi Toren van 4 schijven verplaatst hulp bron doel 3 1 2

19 De torens van Hanoi Probleem opsplitsen in deelproblemen Algoritme:
Als N = 1 enige schijf verplaatst Als N > 1 basisgeval!! recursie!! - Verplaats bovenste n-1 schijven van bron- naar hulpstaaf - Verplaats onderste schijf van begin- naar doelstaaf - Verplaats n-1 schijven van hulp- naar doelstaaf

20 Implementatie in Logo Deelproblemen?
beginsituatie: staven en schijven op het scherm tekenen verplaatsen van schijven: basisgeval schijf afhalen van staaf schijf toevoegen aan staaf Recursieve oproep HANOI verplaatsSchijven beginsituatie

21 to staaf : staaf : aantalSchijven
Implementatie in Logo WAAROM 1. Beginsituatie to staaf : staaf : aantalSchijven setpc [ ] setfc [ ] positie 300*(:staaf-2) 0 repeat 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

22 voegToeSchijf : staaf :schijf
Implementatie in Logo WAAROM voegToeSchijf : staaf :schijf setpc [ ] setfc [ ] positie 300*(:staaf-2)-(10*:schijf) (item :staaf :staven)*20 repeat 2 [fd 15 rt 90 fd 30+20*:schijf rt 90] rt 10 fd 5 fill positie 300*(:staaf-2)+5 (item :staaf :staven)*20+5 positie 300*(:staaf-2)+35 (item :staaf :staven)*20+5 lt 10 setItem :staaf :staven (item :staaf :staven)+1

23 Implementatie in Logo Array: 1 variabele, bevat verschillende items
make “arrayNaam {3 4 2} index (item 1 arrayNaam ) setItem 2 arrayNaam 10 3 {3 10 2}

24 Implementatie in Logo test: make “staven{0 0 0} KORTER? staaf 1 5
voegToeSchijf 2 5 voegToeSchijf 2 4 voegToeSchijf 2 3 voegToeSchijf 2 2 voegToeSchijf 2 1 KORTER? make “aantalSchijven 5 repeat :aantalschijven [voegtoeSchijf 2 :aantalschijven make "aantalschijven :aantalschijven-1]

25 to beginSituatie :aantalschijven
Implementatie in Logo to beginSituatie :aantalschijven cs ht make "staven {0 0 0} staaf 1 :aantalschijven staaf 2 :aantalschijven staaf 3 :aantalschijven repeat :aantalschijven [voegtoeSchijf 2 :aantalschijven make "aantalschijven :aantalschijven-1] beginsituatie HANOI verplaatsSchijven

26 Implementatie in Logo 2. Verplaatsen van schijven
Basisgeval: verplaats 1 schijf to verplaatsSchijf :bronstaaf :doelstaaf :schijf verwijderSchijf : bronstaaf voegToeSchijf :doelstaaf :schijf Procedure verwijderSchijf

27 Implementatie in Logo to verwijderSchijf :staaf
test: verwijderSchijf 2 setItem :staaf :staven (item :staaf :staven)-1 ; schijf wissen setfc [ ] positie 300*(:staaf-2) (item :staaf :staven)*20+5 fill ; paal terugkleuren positie 300*(:staaf-2) (item :staaf :staven)*20 setpc [ ] setfc [ ] repeat 2 [fd 15 rt 90 fd 30 rt 90] rt 10 fd 5 lt 10

28 Implementatie in Logo procedure verplaatsSchijven
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]

29 to hanoi :aantalschijven
Implementatie in Logo 3. Oplossing to hanoi :aantalschijven beginSituatie :aantalSchijven verplaatsSchijven :aantalSchijven 2 3 1


Download ppt "Recursie: De torens van Hanoi"

Verwante presentaties


Ads door Google