Równanie rekurencyjne
Highway: Cześć. W jaki sposób rozwiązać takie równanie rekurencyjne? Mam je do zrobienia na Algorytmy
na studiach.
⎧ | T(0) = 1 | |
⎩ | T(n) = 2T(n − 1) + 1 |
|
6 sty 13:37
jc: Oblicz kilka początkowych wyrazów, może zobaczysz co się dzieje.
6 sty 13:43
Adamm:
Można np. podstawić
1, 3, 7, 15, 31, 63
I zobaczyć że wyrazy tego ciągu przypominają 2n+1−1
6 sty 13:45
Adamm:
Inny sposób to "rozłożyć" równanie rekurencyjne otrzymując sumę
T(n) = 2n+...+1 = 2n+1−1
6 sty 13:48
ABC:
metodą wyciągania królika z kapelusza zauważasz że T(n)=2n+1−1 i udowadniasz to indukcyjnie
krok indukcyjny : T(n+1)=2T(n)+1 =2*(2n+1−1)+1=2n+2−2+1=2n+2−1
6 sty 13:49
kerajs: Albo :
rozwiązując rekurencyjne równanie jednorodne: r=2
przewidując z równania niejednorodnego postać wzoru ogólnego na: T(n)=A2n+B
i wyznaczając brakujące współczynniki z warunków początkowych:
1=A20+B ⋀ 3=A21+B
co da: T(n)=2*2n−1
albo:
PS
Pewnie mariuszm poda rozwiązanie z funkcją tworzącą.
6 sty 21:24