[Teoria złożoności] Ktora z funkcji wykonuje sie najdluzej

degel123
Użytkownik
Użytkownik
Posty: 194
Rejestracja: 23 lis 2014, o 19:35
Płeć: Mężczyzna
Lokalizacja: polska
Podziękował: 64 razy

[Teoria złożoności] Ktora z funkcji wykonuje sie najdluzej

Post autor: degel123 »

double a=5;
a) y=a*a+a;
b) y=pow(a,2);
c) y=exp(a);
d) y=log(a);
e) y=sin(a)

Najlepiej z uzasadnieniem. Wydaje mi sie ze takie e^5 sie dluzej bedzie wykonywac niz a*a+a ale jak to uzasadnic to nie wiem to samo z log i sin ;/
Ostatnio zmieniony 10 cze 2017, o 16:24 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
SlotaWoj
Użytkownik
Użytkownik
Posty: 4211
Rejestracja: 25 maja 2012, o 21:33
Płeć: Mężczyzna
Lokalizacja: Kraków PL
Podziękował: 2 razy
Pomógł: 758 razy

Re: [Teoria złożoności] Ktora z funkcji wykonuje sie najdluz

Post autor: SlotaWoj »

Trzy ostatnie funkcje są obliczane poprzez ich

Kod: Zaznacz cały

https://pl.wikipedia.org/wiki/Wz%C3%B3r_Taylora#Rozwini.C4.99cia_niekt.C3.B3rych_funkcji_w_szereg_Maclaurina
, więc jest oczywiste że będą się wykonywały dłużej.
A która z nich najdłużej?
W teorii złożoności trzeba poddać analizie ww. rozwinięcia.
W praktyce zależy to od dwóch czynników: szczegółów implementacji w bibliotece i wykorzystywania (lub nie) koprocesora arytmetycznego.
Ww. szczegóły implementacji sprowadzają się do: przebazowań argumentów, liczby obliczanych składników szeregu Taylora, która może być zmienna, optymalizacji (często przeciwstawnych) podnoszących wydajność, minimalizujących ryzyko przepełnienia i zmniejszających błędy zaokrągleń.
Najprościej wykonać jest testy, np. zmierzyć czas wykonania pętli miliona wywołań ww. funkcji, odjąć czas wykonania pustej pętli i podzielić przez milion, a następnie porównać i wyciągnąć wnioski. Należy to wykonać dla różnych wartości argumentów w dziedzinie, bo od nich może zależeć czas obliczeń (liczba składników szeregu).
Oczywiście otrzymane wyniki będą dotyczyły konkretnego komputera i konkretnej biblioteki numerycznej (wersji kompilatora języka programowania).
ODPOWIEDZ