Puzzel Puzzels
Forumregels
(Middelbare) school-achtige vragen naar het forum "Huiswerk en Practica" a.u.b.
Zie eerst de Huiswerkbijsluiter
Gebruikersavatar
Energyfellow
Artikelen: 0
Berichten: 122
Lid geworden op: zo 30 sep 2012, 12:01

Algoritmen T(n) berekenen while lus

Hallo,

Ik heb na lang zoeken het min of meer onder de knie gekregen hoe ik een for lus in pseudocode uit een algoritme moet omzetten naar een som (
\(\sum \)
) en hieruit dan de Thèta n (T(n)) berekenen.

Maar ik worstel nu met het volgende: hoe doe ik dit met while lus?

Kan er mij iemand helpen hij het oplossen van onderstaande twee oefeningen?

Opdracht: bereken T(n).
While
While 1057 keer bekeken
Dank bij voorbaat,

Roger

ads

Steun Sciencetalk Logitech M705 - Draadloze Marathon Muis - USB - Rechtshandig - Grijs

Logitech M705 - Draadloze Marathon Muis - USB - Rechtshandig - Grijs

Bekijk product

Steun Sciencetalk Tomodachi Life - Nintendo Switch

Tomodachi Life - Nintendo Switch

Bekijk product

Steun Sciencetalk bol cadeaukaart - 20 euro - HiepHiep

bol cadeaukaart - 20 euro - HiepHiep

Bekijk product

Gebruikersavatar
Math-E-Mad-X
Artikelen: 0
Berichten: 2.906
Lid geworden op: wo 13 sep 2006, 17:31

Re: Algoritmen T(n) berekenen while lus

Wat betekent T(n) ?
while(true){ Thread.sleep(60*1000/180); bang_bassdrum(); }
Scispace Scispace

Scispace is dé ai voor wetenschappers en onderzoekers. Ga naar SciSpace en profiteer van één van de beste ai's.

Scispace

Gebruikersavatar
Energyfellow
Artikelen: 0
Berichten: 122
Lid geworden op: zo 30 sep 2012, 12:01

Re: Algoritmen T(n) berekenen while lus

We noteren voor een inputgrootte n de uitvoeringstijd T van het algoritme als een functie van n, dus als T(n).
Gebruikersavatar
Math-E-Mad-X
Artikelen: 0
Berichten: 2.906
Lid geworden op: wo 13 sep 2006, 17:31

Re: Algoritmen T(n) berekenen while lus

Beide oefeningen gaan op dezelfde manier.

Vraag jezelf het volgende af: hoe vaak wordt de buitenste lus uitgevoerd?
while(true){ Thread.sleep(60*1000/180); bang_bassdrum(); }
Gebruikersavatar
Energyfellow
Artikelen: 0
Berichten: 122
Lid geworden op: zo 30 sep 2012, 12:01

Re: Algoritmen T(n) berekenen while lus

Volgens mij wordt die 'k' keer uitgevoerd.
Gebruikersavatar
Math-E-Mad-X
Artikelen: 0
Berichten: 2.906
Lid geworden op: wo 13 sep 2006, 17:31

Re: Algoritmen T(n) berekenen while lus

Klopt.

De binnenste lus wordt duidelijk j keer uitgevoerd. Je krijgt dus twee sommaties, één met een index die loopt van 1 tot k en één die loopt van 1 tot j.

Probeer dit eens uit te schrijven met sommatie tekens.
while(true){ Thread.sleep(60*1000/180); bang_bassdrum(); }
Gebruikersavatar
Energyfellow
Artikelen: 0
Berichten: 122
Lid geworden op: zo 30 sep 2012, 12:01

Re: Algoritmen T(n) berekenen while lus

Ik denk dat dit zou moeten kloppen:
\(\sum_{i=1}^{k}\sum_{i=1}^{j}1\)
Waarbij
\(\sum_{i=1}^{k}\)
we hier die while lus beschrijven.
Gebruikersavatar
Math-E-Mad-X
Artikelen: 0
Berichten: 2.906
Lid geworden op: wo 13 sep 2006, 17:31

Re: Algoritmen T(n) berekenen while lus

Klopt, al moet je bij die eerste sommatie van 1 tot k eigenlijk een andere index dan i gebruiken, bijvoorbeeld m.

Volgende stap: de sommatie van 1 tot j kun je gemakkelijk vereenvoudigen.
while(true){ Thread.sleep(60*1000/180); bang_bassdrum(); }
Gebruikersavatar
Energyfellow
Artikelen: 0
Berichten: 122
Lid geworden op: zo 30 sep 2012, 12:01

Re: Algoritmen T(n) berekenen while lus

Dus
\(\sum_{i=1}^{j}\)
= j + 1 - 1 = j.

Dan krijgen we:
\(\sum_{a=1}^{k} j\)
= j * k waarbij j = n, dat geeft ons dan n * k.

Als we dat eens neerpennen met links n en rechts k:

1 3

2 9

3 27

= Log(n) k, we hebben hier dus een logaritmisch tijdverloop.
Gebruikersavatar
Math-E-Mad-X
Artikelen: 0
Berichten: 2.906
Lid geworden op: wo 13 sep 2006, 17:31

Re: Algoritmen T(n) berekenen while lus

Energyfellow schreef: wo 03 apr 2013, 14:05
Dan krijgen we:
\(\sum_{m=1}^{k} j\)
= j * k
Hier ga je iets te kort door de bocht! j is namelijk afhankelijk van m!

hoe kun je j als functie van m schrijven?
while(true){ Thread.sleep(60*1000/180); bang_bassdrum(); }
Gebruikersavatar
Energyfellow
Artikelen: 0
Berichten: 122
Lid geworden op: zo 30 sep 2012, 12:01

Re: Algoritmen T(n) berekenen while lus

Ik denk dat je het volgende bedoelt:
\(\sum_{i=1}^{k}3^{i}\)
Gebruikersavatar
Math-E-Mad-X
Artikelen: 0
Berichten: 2.906
Lid geworden op: wo 13 sep 2006, 17:31

Re: Algoritmen T(n) berekenen while lus

Hint:

De eerste keer dat de buitenste lus wordt doorlopen hebben we m=1 en j=n

De tweede keer dat de buitenste lus wordt doorlopen hebben we m=2 en j=...

etc..
Energyfellow schreef: wo 03 apr 2013, 14:22
Ik denk dat je het volgende bedoelt:
\(\sum_{i=1}^{k}3^{i}\)
inderdaad
while(true){ Thread.sleep(60*1000/180); bang_bassdrum(); }
Gebruikersavatar
Math-E-Mad-X
Artikelen: 0
Berichten: 2.906
Lid geworden op: wo 13 sep 2006, 17:31

Re: Algoritmen T(n) berekenen while lus

Ben je bekend met meetkundige rijen?
while(true){ Thread.sleep(60*1000/180); bang_bassdrum(); }
Gebruikersavatar
Energyfellow
Artikelen: 0
Berichten: 122
Lid geworden op: zo 30 sep 2012, 12:01

Re: Algoritmen T(n) berekenen while lus

Nee, maar wat niet is ik kan komen hé ;) .

Maar voor de tweede heb ik wel een een logaritmische tijdeenheid hé.

ads

Steun Sciencetalk Ohuhu Honolulu 320 kleuren Alcohol Art Markers Brush & Chisel

Ohuhu Honolulu 320 kleuren Alcohol Art Markers Brush & Chisel

Bekijk product

Steun Sciencetalk bol cadeaukaart - 20 euro - Bedankt!

bol cadeaukaart - 20 euro - Bedankt!

Bekijk product

Steun Sciencetalk Samsung Galaxy Tab A11 Plus - Wi-Fi - 256GB - Gray + 1 jaar extra garantie

Samsung Galaxy Tab A11 Plus - Wi-Fi - 256GB - Gray + 1 jaar extra garantie

Bekijk product

Gebruikersavatar
Math-E-Mad-X
Artikelen: 0
Berichten: 2.906
Lid geworden op: wo 13 sep 2006, 17:31

Re: Algoritmen T(n) berekenen while lus

Ah, ja, inderdaad, voor de tweede opgave klopt het wel wat je zei.

De sommatie bij de eerste opgave kun je verder uitwerken met:

http://nl.wikipedia.org/wiki/Meetkundige_rij

En de laatste stap is dan het uitschrijven van k als functie van n.
while(true){ Thread.sleep(60*1000/180); bang_bassdrum(); }

Plaats een reactie

Je mail wordt niet openbaar getoond. Het wordt enkel gebruik voor contact of notificatie vanuit het beheer.

🗨️ Wat vind jij? Stel direct je vraag of geef je mening – zonder registratie. Je reactie zet het topic weer bovenaan bij 'Laatste posts' en trekt snel nieuwe reacties aan🔥. Mocht je als vaste bezoeker willen reageren, dan kun je je ook registreren.

Bevestig dat je geen robot bent door de volgende vragen te beantwoorden.

Noor heeft 10 knikkers. Ze verliest er 4 in het gras. Hoeveel heeft ze er nog?

Antwoord: (vul een getal in)

Er zitten 5 vogels op een hek. Twee vliegen weg. Hoeveel blijven er zitten?

Antwoord: (vul een getal in)

Terug naar “🎲 Wiskunde”

Sciencetalk: Leer, deel of groei. Volg of geef een cursus op Sciencetalk!