pętla for
Maciek: witam, wiem że to nie jest forum informatyczne ale nawet na studiach matematycznych
uczą programowania więc spróbować nie zaszkodzi
jest pętla for(int i=1;i<multiplier; i*=2) i mam obliczyć liczbę operacji w zależności od
multiplier.
| L | |
(dla przykładu dla pętli for(int x=0;x<length/2;x++) odpowiedzią jest |
| gdzie L−length) |
| 2 | |
Wiem od prowadzącego że liczbą operacji będzie logarytm, lecz nie wiem kompletnie jak to
ugryźć, bo np.
dla M=10 pętla wykona się dla liczb: 1,2,4,8 czyli odp to 4 i wyniki dla poszczególnych M
muszę przedstawić w postaci logarytmu.
Proszę o jakąkolwiek pomoc.
b.: 'i' będzie kolejnymi potęgami dwójki, aż w końcu zrobi się większe niż 'multiplier' (przy
założeniu, że się nie przekręci
) i wtedy już się pętla nie wykona
czyli
2
0, 2
1, ..., 2
n−1 < multiplier ≤ 2
n,
gdzie n to liczba obrotów pętli. Z ostatnich nierówności można wyliczyć n używając log
2 oraz
podłogi lub sufitu.