Podziel, rozwiąż, połącz

Metoda dziel i zwyciężaj: podział problemu na podproblemy - Informatyka - liceum klasa 2, zakres rozszerzony (Python)

Metoda **dziel i zwyciężaj** ma trzy kroki: 1. **Podziel** problem na mniejsze podproblemy tego samego rodzaju (zwykle dwie połowy). 2. **Rozwiąż** podproblemy rekurencyjnie; bardzo małe (jeden element) rozwiązuje się wprost. 3. **Połącz** wyniki podproblemów w wynik całości. Program liczy sumę listy tą metodą i wypisuje, jak dzieli listę na kolejnych poziomach.

def total(values, depth=0):
    print("  " * depth + str(values))
    if len(values) == 1:
        return values[0]
    middle = len(values) // 2
    return total(values[:middle], depth + 1) + total(values[middle:], depth + 1)

print("suma:", total([5, 3, 8, 1, 9, 2, 7]))

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Informatyka - liceum klasa 2, zakres rozszerzony·Zaloguj się, aby zapisać postęp na koncie.