Archief - [PROG] [PROG] Recursie

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Sjeng

Legacy Member
Hallo, een vraagje in verband met recursieve functies.

Een voorbeeld hiervan is Knight's tour dat gebruik maakt van backtracking, zie:
http://www.devhood.com/tools/tool_details.aspx?tool_id=235

Ik vond dat echt knap gemaakt, ik was eerst hieraan zelf begonnen maar halverwege ergens gestopt...
Weet er iemand misschien nog ergens een voorbeeld van recursieve methodes ofzo? (indien mogelijk C#)

Ben ondertussen al wat ernaar aant zoeken...

[BAT] Hydra

Legacy Member
De handelingen (in textuele vorm) die nodig zijn om het probleem van de torens van Hanoi op te lossen, kunnen ook met een programmaatje dat een recursieve oplossing biedt beschreven worden.

Hanoi 8: Beeld je in dat er 3 staven rechtop staan, en we beschikken over 8 schijven met een gat in het midden. Dit gat is iets groter dan de dikte van de staven, we kunnen een schijf dus over een staaf plaatsen (langsheen het gat in elke schijf). Elke staaf is lang genoeg, zodat er zeker minstens 8 schijven over geplaatst kunnen worden.

We starten met 8 schijven van verschillende diameter, die over de eerste staaf geschoven zijn. De grootste schijf ligt onderaan, hierop ligt de 2e grootste schijf,..., de kleinste schijf ligt bovenaan.

Het probleem is nu: Hoe krijgen we deze 8 schijven die rond de 1e staaf liggen (in volgorde van klein-bovenaan naar groot-onderaan), rond de 3e staaf (terug in volgorde van klein-bovenaan naar groot-onderaan)? Als we
- slechts één schijf per keer kunnen verplaatsen van staaf naar staaf
- er nooit een grotere schijf op een kleinere schijf mag geplaatst worden

Sjeng

Legacy Member
Die zoekfunctie zegt mij wel iets van vroeger opt school, ma tis alweer te lang geleden blijkbaar... :p

Ben nu wat aant zoeken op google over hanoi, lijkt mij wel een interessante oefening btw! Als er nog iemand dergelijke toepassingen weet, let me know!

Thx!

Sjeng

Legacy Member
Weet ik, ben er nu ook volop naar op zoek... Als iemand nog voorbeelden weet, gooi het dan maar in de groep! Vandaar deze thread! ;)

Vich

Legacy Member
Sjeng zei:
Weet ik, ben er nu ook volop naar op zoek... Als iemand nog voorbeelden weet, gooi het dan maar in de groep! Vandaar deze thread! ;)

Een octree/quadtree zou je kunnen doorlopen met recursie.
http://en.wikipedia.org/wiki/Octree
http://en.wikipedia.org/wiki/Quadtree

In principe kan je de meeste boomstructuren met recursie doorlopen volgens mij.
Ik heb bijvoorbeeld een GUI library dat hier gebruik van maakt. Alles is opgebouwd uit surfaces en surfaces kunnen weer child surfaces hebben (bvb knop in venster, tekst in knop, venster in veld, etc) en events(zoals muisklik) worden dan recursief aan de child surfaces doorgegeven.

[BAT] Hydra

Legacy Member
Schrijf een programma in prolog, een declaratieve taal. Elk programma dat je in prolog maakt steunt op recursie. Om een probleem op te lossen in prolog moet je elke keer het probleem recursief benaderen.

Sjeng

Legacy Member
Geen idee wat prolog is, nog nooit ervan gehoord, ik zal het eens bekijken thx!

Mja je hebt verschillende soorten recursie, in het ene geval ga je ergens door itereren (directory structuur) terwijl in het andere geval je een probleem kan oplossen ermee zoals knight's tour of hanoi...

Dat laatste is wat mij vooral interesseert maar er komt wel heel wat wiskunde bij kijken in dat geval. Je moet het programma zelf een weg laten zoeken naar een oplossing...
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan