Programmeringskurs: 3.3 while-løkker
Eksponentiell vekst
Vi har eksponentiell vekst når en verdi øker med en fast prosentvis sats. Det finnes mange praktiske eksempler på dette. For eksempel når vi setter penger i banken med ei fast rente, eller hvis vi låner penger av banken og binder renta. Strålingen fra radioaktivt materiale og populasjonsvekst er andre eksempler.
Når en verdi øker med 20 %, sier vi at vekstfaktoren er 1,20. Vi får vekstfaktoren til #p \text{ %}# ved å regne ut
#\text{vekstfaktor} = 1+ \frac{p}{100}#
Hvis verdien 1000 øker med 20 % en gang blir verdien
#1000 \cdot 1,20 = 1200#
Etter to ganger blir det
#1200 \cdot 1,20 = 1440#
Etter tre økninger blir det
#1440 \cdot 1,20 = 1728#
Du ser kanskje et mønster?
Hvis vil lurer på hva verdien er etter 100 repetisjoner vil det bli mange utregninger dersom vi skulle gjøre det slik som ovenfor. Det er både tidkrevende og kjedelig, men ingen sak for en datamaskin.
På en øy er det 500 kaniner. Det er godt med plass og dessuten rikelig med både mat og villige partnere. Populasjonen vokser med 5 % hvert år.
Hvor mange kaniner er det på øya etter 100 år hvis veksten er 5 % i alle disse årene? Lag et program med en while-løkke som regner det ut for deg.
LØSNING:
Vi tenker slik. Ved starten (i år 0) er verdien 10 000. Vi skal regne ut regnestykket
#\text{verdi}\cdot \text{vekstfaktor}#
100 ganger for å finne verdien etter 100 år. Det kan vi gjøre med en while-løkke.
Hele programmet blir slik:
Det er 65 751 kaniner på øya etter 100 år.
Kanskje kan du potensregning og vet hvordan du kunne løst i eksemplet ovenfor på en enklere måte? I eksemplet kunne vi dessuten med fordel brukt ei for-løkke, ettersom vi på forhånd viste hva hvor mange år frem i tid vi ville regne. Men ikke hvis vi snur litt på spørsmålet og spør:
Etter hvor mange år er antallet kaniner er over 1 million?
Nå vet vi ikke på forhånd hvor mange ganger vi må gjøre utregningen, og en while-løkke passer perfekt. Vi kan ta utgangpunkt i den samme koden som i eksemplet ovenfor.
På en øy er det 500 kaniner. Det er godt med plass og dessuten rikelig med både mat og villige partnere. Populasjonen vokser med 5 % hvert år.
Etter hvor mange år er antallet kaniner er over 1 million?
LØSNING:
Vi tar utgangpunkt i programmet vi lagde i eksemplet ovenfor. Alt vi må endre i programmet er betingelsen i while-løkka.
Fra: #\texttt{år < 100}# #\quad# Til: #\texttt{verdi < 1000000}#
For ekstra kontroll legger vi med en linje i while-løkka slik at vi ser utviklingen år til år.
Koden blir da slik. Trykk på for å kjøre programmet.
Antallet kaniner er over 1 million etter 156 år.