Springen naar inhoud

Problemen oplossen en recursie


  • Log in om te kunnen reageren

#1

BarryVos

    BarryVos


  • >25 berichten
  • 44 berichten
  • Gebruiker

Geplaatst op 30 mei 2008 - 14:27

Nu ik eindelijk klaar ben met het VWO, dacht ik nog eens wat oude werkstukken van zolder te halen. Gewoon, om nog wat aardige herinneringen op te doen. Een van mijn wiskundewerkstukken trok daarbij m'n aandacht.
De situatie is als volgt: Een auto auto rijdt 1 op 10 (1L:10km) en heeft een tank met een inhoud van 100L. De actieradius is dus 1000km. Stel nu dat er alleen een tankstation aan het begin van het traject staat en we toch verder willen rijden dan 1000km. Hierbij mogen we brandstofdepots aanleggen op elk punt van het traject. Er moet dus heen en weer gereden worden om verder dan 1000km af te leggen. (alle complicaties die zich in werkelijkheid voordoen mogen vergeten worden)
De vraagstelling: Hoeveel liter brandstof kost het minimaal om x km af te leggen, waarbij x groter is dan 1000 km?

Ik heb uiteindelijk de volgende oplossing gevonden (let wel, de afstanden worden in liters brandstof genomen):
LaTeX
LaTeX

f(x) geeft de hoeveelheid brandstof die nodig is om x L naar het volgende depot te brengen (welke op afstand i staat, ofwel oneindig klein).

LaTeX
LaTeX

g(x,y) geeft de hoeveelheid brandstof die nodig is om y L brandstof van het begin naar het einde van het traject van depots te brengen, welke een afstand van x L bedraagt.

LaTeX

h(x) is hier de benodigde hoeveelheid brandstof die nodig is om een afstand van x L af te leggen.

Als je dit begrijpt, dan is dat mooi. Maar dat is niet het punt dat ik wil maken. Waar het mij om gaat is dat dit best een "domme" oplossing is. Ten eerste zijn de conditionele expressies (als..., dan...) niet bepaald elegant, maar erger nog is het gebruik van recursie. Door het gebruik van recursie duurt het verschrikkelijk lang om een computer een nauwkeurig antwoord te laten produceren. Dit is dus eigenlijk een lelijke en, tot op zekere hoogte, nutteloze oplossing.
Het punt is dat een recursieve oplossing in bepaalde gevallen tamelijk eenvoudig is gevonden. Ik denk dat dit vooral komt omdat het zich vrij modulair, stapje voor stapje, laat oplossen. Dat idee heb ik in ieder geval.

De werkelijke vraag
Hoe kan ik leren de verleidelijke recursie achterwege te laten bij het oplossen van problemen? Of beter, hoe leer ik elegante oplossingen te vinden voor problemen? Zijn er misschien wat boeken die nuttig zouden kunnen zijn?

Veranderd door BarryVos, 30 mei 2008 - 14:29


Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

jhnbk

    jhnbk


  • >5k berichten
  • 6905 berichten
  • VIP

Geplaatst op 30 mei 2008 - 18:48

Als ik het goed begrijp levert dit een oplossing die minimaal is (denk ik) als je met liters werkt op de eenheid:

Je start met een volle tank en je rijdt 1 l op. Daar laat je 1 l achter en en je rijdt terug. Zodoende heb je 3 l verspild en een voorraad op 10 km.
Nu tank je die 3 l bij. Nu kan je na 10 km terug je tank voldoen en ken je in totaal dus 1010 km rijden.
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

#3

BarryVos

    BarryVos


  • >25 berichten
  • 44 berichten
  • Gebruiker

Geplaatst op 31 mei 2008 - 18:10

Dat is min of meer de oplossing. Maar om het efficientst te werk te gaan rijden we niet 1 liter op, maar zo weinig mogelijk liters (i, ofwel oneindig klein). Verder wordt de tank helemaal volgedaan en wordt er 100-2i liter (of 100-i indien er niet meer teruggereden hoeft te worden) afgeleverd aan het volgende depot.
Dan zijn er nog wat uitzonderingen, maar dit is min of meer de oplossing.

Om toch even terug te komen op m'n vraag; De oplossing die recursief is geeft een mooie beschrijving van het proces van het laden en lossen van brandstof. Het is echter minder geschikt om heel nauwkeurig EN snel een antwoord te geven op de vraagstelling. Ik kan echter geen ander 'type' antwoord vinden.
Dat zou op twee manieren kunnen worden opgelost. Door op een andere manier het probleem te benaderen of door de recursieve formules om te bouwen naar directe formules. Enig advies wat dat betreft zou geweldig zijn. Ik ben ook niet te lam om boeken te lezen, dus als iemand een aanrader heeft...





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures