Bitkostad för tvåpotensalgorithm: varför tänker jag fel?
Hej,
Det är ett steg i följande uppgift som jag inte förstår

Så här tänkte jag: om vi tänker oss att multiplikation är där är antalet bitar för de två talen som multipliceras.
Sen tittar vi på pow <- pow * pow.
| Iteration | Värde på pow innan multiplikationen utförs | Värde på pow efter multiplikationen utförts |
| i=1 | 2 | 2*2=4=2² |
| i=2 | 2² | 2²*2²=2⁴ |
| i=3 | 2⁴ | 2⁴*2⁴=2⁸ |
| ... | ... | ... |
Då tänker jag så här: Det är "Värde på pow innan multiplikationen utförs" som påverkar bitkomplexiteten. I i=1, då beräknar vi 2*2. Att lagra talet 2 kräver 2 bitar.
P.s.s., i i=2, då beräknar vi 4*4. Att lagra resultatet (16, 2⁴), det kräver 5 bitar.
Därför blir min slutsats i varje iteration så multipliceras två stycken tal som tar upp .
Bitkomplexiteten "per varv" blir således . Loopen körs gånger, så jag ska summera över . Men det är inte så facit gör:

Varför tänker jag fel?
Jag tror inte du tänker så fel. Ditt i kommer gå upp till log m=n, så du får lite grovt avrundat om du fortsätter n*(2^n)^2=n*4^n=O(4^n)