Liczba kroków niezbędna do uruchomienia programu

0

Witam, bardzo przepraszam, jeżeli dział jest zły, ale nie wiedziałem gdzie go wrzucić.

Oto problem, jest sobie taka funkcja:

def program1(L):
    multiples = []
    for x in L:
        for y in L:
            multiples.append(x*y)
    return multiples

A oto wzór na naliczanie kroków, dla najgorszego scenariusza (dla długiej listy w argumencie funkcji): n * (3*n + 1) + 2

Czy ktoś potrafiłby mi wytłumaczyć (móżdżyłem długo, ale nic z tego nie wynikło) skąd we wzorze bierze się dodatkowe + 1?
Rozumiem, że pierwsze 'n' symbolizuje pierwszą pętlę. 3n symbolizuje wewnętrzną pętlę (przypisanie wartości do y, mnożenie x*y i dodania wartości do listy). + 2 to oczywiście return i multiples = []. Ale skąd się bierze + 1 w nawiasie? Bardzo proszę o wytłumaczenie, bo sam nie potrafię tego odgadnąć.

0

Ja bym stawiał na to, że to +1 jest dlatego, że dla listy długości N masz N + 1 sprawdzeń, tzn np dla listy długości 0 masz jedno sprawdzenie - czy jest pusta. Dla listy długości 1 najpierw sprawdzasz czy jest pusta, potem obsługujesz pierwszy element, a potem sprawdzasz czy jeszcze jakieś zostały.

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