De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Recursie: De torens van Hanoi Lesgever: Tineke Broekaert.

Verwante presentaties


Presentatie over: "Recursie: De torens van Hanoi Lesgever: Tineke Broekaert."— 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 hulpbrondoel 12 3

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

5 De torens van Hanoi hulpbrondoel 12 3

6 De torens van Hanoi hulpbrondoel 12 3

7 De torens van Hanoi hulpbrondoel 12 3

8 De torens van Hanoi hulpbrondoel 12 3

9 De torens van Hanoi hulpbrondoel 12 3

10 De torens van Hanoi hulpbrondoel 12 3 BASISGEVAL: 1 schijf verplaatst

11 De torens van Hanoi hulpbrondoel 12 3

12 De torens van Hanoi hulpbrondoel 12 3 toren van 2 schijven verplaatst

13 De torens van Hanoi hulpbrondoel 12 3

14 De torens van Hanoi hulpbrondoel 12 3

15 De torens van Hanoi hulpbrondoel 12 3

16 De torens van Hanoi hulpbrondoel 12 3 Toren van drie schijven verplaatst

17 De torens van Hanoi hulpbrondoel 12 3

18 De torens van Hanoi hulpbrondoel 12 3 Toren van 4 schijven verplaatst

19 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!! basisgeval!!

20 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

21 Implementatie in Logo 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 WAAROM

22 Implementatie in Logo  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 fill positie 300*(:staaf-2)+35 (item :staaf :staven )*20+5 fill lt 10 setItem :staaf :staven (item :staaf :staven )+1 WAAROM

23 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}

24 Implementatie in Logo  test: make “staven{0 0 0} staaf 1 5 staaf 2 5 staaf 3 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 Implementatie in Logo 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] to beginSituatie :aantalschijven beginsituatie HANOI verplaatsSchijven

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

27 Implementatie in Logo 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 fill lt 10 to verwijderSchijf :staaf  test: verwijderSchijf 2

28 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

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


Download ppt "Recursie: De torens van Hanoi Lesgever: Tineke Broekaert."

Verwante presentaties


Ads door Google