PRM, semestr letni 2002

ćwiczenie 12

przykładowy konspekt: problemu rekurencyjne


Sięgnąć po przykłady z wykładu: wieze Hanoi, generowanie wszystkich permutacji zbioru liczb :
a) Zaobserwować sposób zmieniania się wskaźników będących argumentami funkcji Hanoi.
b) W podobny do Hanoi sposób wyświetlić wartości argumentów funkcji permutuj.
c) Do czego służy przekazywanie tablic (będących wieżami Hanoi lub tablicą permutacji) jako argumentów wywołania funkcji rekurencyjnej? Czy przekazywane są całe tablice, czy tylko wskaźniki ;-)? Jak inaczej możnaby zapisać funkcję permutuj, nie przekazując jako argumentu int A[], lecz dodatkową wartość typu int, np. indeks początku tablicy?
d) Gdyby w tablicy permutowanych liczb znalazły się nie kolejne, lecz dowolne, np
4 2 4 4
to różnych od siebie permutacji jest mniej niż n! Jak możnaby zmodyfikować funkcję permutuj aby uzyskać w wyniku działania programu tylko takie premutacje:
2 4 4 4
4 2 4 4
4 4 2 4
4 4 4 2
e) Napisać program rozwiązujący problem N hetmanów (N>4), wyświetlający wszystkie rozwiązania tego problemu.


Powodzenia!