ALG5

ALG5



3.4. Przykład 3: Wpadamy w pułapkę 65

7\«)-/t(l + N + Nt[i]).

T{n) ~ max(A\ AV[/]).

Początek jest klasyczny: „zewnętrzna” suma od 1 do N z równania (*) zostaje zamieniona na A-krotny iloczyn swojego argumentu. Podobny „trik” zostaje wykonany w równaniu (**), po czym możemy już spokojnie zająć się grupowaniem i upraszczaniem... Czas wykonania programu jest proporcjonalny do większej z liczb: N i A7[i] i tylko tyle możemy na razie stwierdzić. Niestety, kończąc w tyin miejscu rozważania wpadlibyśmy w pułapkę. Naszym problemem jest bowiem nieznajomość zawartości tablicy, a ta jest potrzebna do otrzymania ostatecznego wyniku! Nie możemy przecież zastosować funkcji matematycznej do wartości nieokreślonej.

Nasze obliczenia doprowadziły zatem do momentu, w którym zauważamy brak pełnej informacji o rozważanym problemie. Gdybyśmy przykładowo wiedzieli, że w tym fragmencie programu, w którym „pracuje” nasza funkcja, można z dużym prawdopodobieństwem powiedzieć, iż tablica wypełniona jest głównie zerami, to nie byłoby w ogóle problemu! Nie mamy jednak żadnej pewności, czy rzeczywiście zajdzie taka sytuacja. Jedynym rozwiązaniem wydaje się zwrócenie do jakiegoś matematyka, aby len, po przyjęciu dużej ilości założeń, przeprowadził analizę statystyczną zadania i doprowadzi! do ostatecznego wyniku w satysfakcjonującej nas postaci.

3.5. Przykład 4: Różne typy złożoności obliczeniowej

Postawmy ponownie przed sobą następujące zadanie: należy sprawdzić, czy pewna liczba ,v znajduje się w tablicy o rozmiarze n Zostało już ono rozwiązane w rozdziale 2, spróbujmy teraz napisać iteracyjną wersję tej samej procedury. Nie jest to czynność szczególnie skomplikowana i sprowadza się do ułożenia następującego programu:

szukaj, cpp

const n=10;

int tab[n]=(l,2,3,2,-7,44,5,l,0,-3l; int szukaj(int tab[n|,int x)

{// funkcja zwraca indeks poszukiwanego elementu x int pos=0;

whilc ((pos<n) &£ (tab[pos]!=x)) pos++;

if(pos<n)


Wyszukiwarka

Podobne podstrony:
ALG3 3.4. Przykład 3: Wpadamy w pułapkę 63 Korzystając z powyższej uwagi oraz informacji zawartych
ALG4 64 Rozdział 3. Analiza sprawności algorytmów3.4. Przykład 3: Wpadamy w pułapkę Zadania z dwóch
ALG5 35 2.4. Niebezpieczeństwa rekurencji2.4.1.Ciąg Fibonacciego Naszym pierwszym zadaniem jest nap
ALG7 3.5. Przykład 4: Różne typy złożoności obliczeniowej 67 Koszt algorytmu oznaczmy klasycznie pr
ALG5 5.1 Listy jednokierunkowe 105 Na rysunku 5-7 możemy przykładowo prześledzić jak powinna być wy
ALG5 5.2. Tablicowa implementacja lisi 125 5-11, gdzie można zobaczyć przykładową implementację lis
km3 25 PRZYKŁAD 6.2 Zadanie Rozwiązać zadanie analizy kinetostatycznej z poprzedniego przykładu, st
GUI: przykłady Microsoft Windows 7 (formalnie NT 6.1) •0*0
15 Przykład 1.4 15 Dane: -    stal 18G2A, wytrzymałość obliczeniowa fd = 305
15 Przykład 2.7 35 Obliczeniowa nośność osłabionego przekroju: - na rozciąganie Nm = AJa = 5,76•
15 Przykład 3.3 45 oraz przyjmuje fia = 1,0 (jak przy swobodnym spaczeniu i braku skręcenia przekro
15 Przykład 5.4 Dwa pręty płaskie ze stali Sf2S.o wymiarach 6 x 63 mm połączono zakładko-wo. stosuj
15 Przykład 3.7 55 redukcyjnym ijf = 1,0 NRc = iM/d = 1,0-96,6-10“4■ 215-103 = 2077 kN. Sprawdzenie
15 Przykład 4.1 jest spełniony. Nośność obliczeniową przy ścinaniu określono wg wzoru >4 i tabl.

więcej podobnych podstron