aantal bewerkingen
Forumregels
(Middelbare) school-achtige vragen naar het forum "Huiswerk en Practica" a.u.b.
Zie eerst de Huiswerkbijsluiter
(Middelbare) school-achtige vragen naar het forum "Huiswerk en Practica" a.u.b.
Zie eerst de Huiswerkbijsluiter
- Berichten: 997
aantal bewerkingen
Hoe kan je inzien hoeveel bewerkingen er nodig zijn om een natuurlijk getal n te reduceren tot 1 of 0 door enkel de bewerkingen "delen door 2" en "min 1" te gebruiken? (Respectievelijk wanneer het deelresultaat even en oneven is.) Of is dit misschien niet mogelijk? Het heeft te maken met de complexiteit van een algoritme.
Re: aantal bewerkingen
Zij n het natuurlijke getal in kwestie.
Schrijf het getal binair.
Dat geeft een getal van a=[1+2log n ] cijfers waarvan er zeg b enen zijn.
Het aantal bewerkingen is dan a + b.
Schrijf het getal binair.
Dat geeft een getal van a=[1+2log n ] cijfers waarvan er zeg b enen zijn.
Het aantal bewerkingen is dan a + b.
- Berichten: 997
Re: aantal bewerkingen
Dus als ik een algoritme (een lus) heb dat a+b bewerkingen doet en ik bekijk het ergste geval (het geval met meest aantal bewerkingen) dan zijn er dus 2a bewerkingen. Bijgevolg kan ik zeggen dat de tijdscomplexiteit = O(2a) = O(2(1+²log n )) = O(²log n ) = O(log n ). Klopt dit? (b Kan toch nooit sneller stijgen in functie van n dan a (asymptotisch)?)
- Berichten: 997
Re: aantal bewerkingen
Erg bedankt! (Die truc van binair schrijven daar was ik nooit opgekomen.) Overigens wel vreemd dat zulk een algoritme dezelfde complexiteit heeft als een algoritme dat elke keer het min 1 doet ineens ook deelt door 2.
-
- Berichten: 251
Re: aantal bewerkingen
Erg bedankt! (Die truc van binair schrijven daar was ik nooit opgekomen.) Overigens wel vreemd dat zulk een algoritme dezelfde complexiteit heeft als een algoritme dat elke keer het min 1 doet ineens ook deelt door 2.
Daarom is binair rekenen zo mooi. Vermenigvuldigen is 'hetzelfde' als optellen.
En daarom kunnen we een AND-poort gebruiken om bewerkingen te doen.