ALG$2
Rozdział 9, Zaawansowane techniki programowania
miejscach), chociaż w zoptymalizowanej wersji można by tę część wbudować w pętlę główną programu. Do obliczenia wartości P(i, j) potrzebna jest znajomość dwóch sąsiednich komórek: dolnej - P(i.j-l) oraz tej znajdującej się z lewej strony - P(i-I, jj. Uwaga ta prowadzi nas do spostrzeżenia, że naturalnym sposobem obliczania wartości P(i,j) będzie posuwanie się „zygzakiem” zaznaczonym na rysunku 9-3.
Rys. 9 - J.
„ Dwuwymiarowy " wiór rekurencyjny.
t|5||5|
Gdy mamy te wszystkie informacje, realizacja programowa jest natychmiastowa:
const n-5;
void dynam(doubla P[n][nl) int i,j;
for(i=l;i<n;i++)
P[i] [0]= 0; PIO] [i)= i;
for(j=l;j<n;j++) II progresja
for(i=l;i<n;i++)
P[i][j]—(P[i—1][j]+P[i][j-l])/2.0;
Nietrudno jest zauważyć, że program powyższy jest dokładnym odbiciem wzoru rekurencyjnego - jedyny nasz wysiłek polega w zasadzie na tym. żeby znaleźć prawidłowy sposób wypełniania tablicy. Celowo podkreślam, że prawidłowy, bowiem w przypadku rekurencji dwu- i więcej wymiarowych (jeśli możemy sobie na takie określenie pozwolić...) możemy bardzo łatwo popełnić błąd polegający na próbie wykorzystania wartości z tablicy, które w danym etapie nie są jeszcze obliczone. Tego typu potknięcia są czasami bardzo trudne do wykrycia, więc warto przy tym szczególnie uważać.
Wyszukiwarka
Podobne podstrony:
ALG 6 226 Rozdział 9. Zaawansowane techniki programowaniaĆwicz. 9-1 Proszę wyprowadzić wzory tłumaczALG 8 228 Rozdział 9. Zaawansowane techniki programowania • funkcja KOMB polega na najzwyklejszym poALG#0 230 Rozdział 9. Zaawansowane techniki programowania Koszt wyliczenia jednego elementu macierzyALG#2 232 Rozdział 9. Zaawansowane techniki programowania I 9 pozornie całą żądaną pamięć, faktyczniALG#4 234 Rozdział 9. Zaawansowane techniki programowania problemu. Mimo iź wersje iteracyjne i rekuALG#6 236 Rozdział 9. Zaawansowane techniki programowania części plecaka przeznaczonej na sery y ’ wALG$0 240 Rozdział 9. Zaawansowane techniki programowania „programu wanie dynamiczne " •ALG 3 Rozdział 9Zaawansowane techniki programowania Rozdziały poprzednie (szczególnie 2 i 5) dostarcALG 4 224Rozdział 9. Zaawansowane techniki programowania Należy zdawać sobie bowiem sprawę z lego, iALG#8 238Rozdział 9. Zaawansowane techniki programowania if(i <n) X[i]=Z/W[i]; I void main() I doALG&8 268 Rozdziału. Algorytmy numeryczne11.1.Poszukiwanie miejsc zerowych funkcji Jednym z częstychKsięgarnia PWN: Joe Celko - SQL. Zaawansowane techniki programowaniaSpis treści O12 SQL. Zaawansowane techniki programowania 28. Drzewa i hierarchie w języku14 SQL. Zaawansowane techniki programowania 33. Optymalizowanie języka4 SQL. Zaawansowane techniki programowania 2.6 SQL. Zaawansowane techniki programowania 7.4. NumerySQL. Zaawansowane techniki programowania 17.2.6. Złączenia zewnętrzne i funkcje10 SQL. Zaawansowane techniki programowania 22. TabeleRozdział 3 niż ma to miejsce w warunkach naturalnych. Również można liczyć się z innym niż zwyklewięcej podobnych podstron