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!