Liczba operacji
Studentka: Oblicz pesymistyczną, średnią i optymistyczną liczbę operacji DoWork w zależności
od parametru a. Przyjmij że funkcja Random zwraca liczby z przedziału od 0 do 1 z równym
prawdopodobieństwem.
Nie wiem jak poradzić sobie z Random, bardzo proszę o pomoc, jutro kolokwium
void zad2 (int a){
if (Random()>0,4)
for (int i=0; i<a; i++)
for (int j=i; j<a; j++)
DoWork();
else
for (int i=0; i<a; i+=2)
DoWork();
Pytający:
Dla a<0 DoWork wykona się 0 razy.
Dla a≥0:
Pesymistycznie warunek (Random()>0,4) będzie spełniony i złożoność to złożoność podwójnej
| a(a+1) | |
pętli, czyli DoWork wykona się |
| razy. O(a2) |
| 2 | |
Optymistycznie warunek (Random()>0,4) nie będzie spełniony i złożoność to złożoność pojedynczej
| a+1 | |
pętli, czyli DoWork wykona się [ |
| ] razy, gdzie "[]" to cecha liczby ( 979). O(a) |
| 2 | |
Średnio warunek (Random()>0,4) będzie spełniony w 60% przypadków, czyli DoWork średnio wykona
| a(a+1) | | a+1 | |
się 0,6* |
| +0,4*[ |
| ] razy. O(a2) |
| 2 | | 2 | |