Rozwiąż rekurencje

0

Ktoś mógłby mi wytłumaczyć w jaki sposób rozwiązać taką rekurencję:
user image

0

Robisz funkcję o nazwie T, która przyjmuje argument n i w ciele tej funkcji wrzucasz prawą stronę równania. Już w samym zapisie, który tutaj umieściłeś widać rekurencyjne wywołanie funkcji T z argumentem n/16.

0

a mógłbyś napisać jak to ma wyglądać?

EDIT:

T(n){
4T(n/16) + n^2;
}

dobrze? co dalej?

0

Zakładam double jako typ n.

double funkcja(double n) {
   if(n == <wartość>) return <wartość>;
   else {
      return 4*funkcja(n/16) + pow(n, 2);
   }
}
0

ok, a po co jest ten if(n == <wartość>)?
i skąd wiadomo ile wynosi "wartość"?

0

To właśnie powinien być jeden z warunków zadania. Jeżeli nie będzie tego warunku program będzie leciał z tą rekurencją w nieskończoność i nigdy się nie zatrzyma.

0

Rozumiem. W takim razie ile wynosi "wartość"?
I kiedy rekurencja się zatrzyma (skończy)?

0

Wklej cala tresc zadania, albo powiedz skad masz ten wzor i do czego on jest...

0

To jest całe zadanie z mojego sprawdzianu.
W poleceniu mam rozwiązać w/w rekurencję.

0

Dopoki nie masz warunku bazowego, niemozliwym jest napisanie innej rekurencji niz nieskonczona. :x

Anyway.. masz nieskonczona.

(define (T n)
  (+ (* 4
        (T (/ n 16)))
     (* n n)))
1

Tutaj nie trzeba chyba pisać algorytmu, tylko rozwiązać to np. metodą rekurencji uniwersalnej.

2
btanreb napisał(a):

Tutaj nie trzeba chyba pisać algorytmu, tylko rozwiązać to np. metodą rekurencji uniwersalnej.

A więc do dzieła: http://pl.wikipedia.org/wiki/Rekurencja_uniwersalna

0

Ktoś może sprawdzić czy to będzie 3 przypadek z tego linku: http://pl.wikipedia.org/wiki/Rekurencja_uniwersalna
Po podstawieniu wyszło mi n33/64, ale "trochę" brakuje do n2...

2
btanreb napisał(a):

Ktoś może sprawdzić czy to będzie 3 przypadek z tego linku: http://pl.wikipedia.org/wiki/Rekurencja_uniwersalna
Po podstawieniu wyszło mi n33/64, ale "trochę" brakuje do n2...

Trzeci przypadek. Mamy nlogba = nlog164 = n1/2. Z kolei n2 = Ω(n1/2 + ε) oraz 4(n/16)2 ≤ cn2 np. dla c = 1/2, zatem T(n) = Θ(n2).

0

Ok, pomyliłem się w obliczaniu "c". Wszystko ok. Dzięki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1