I_R_W14_M37_Java Algorytmy zachłanne
czym charakteryzują się algorytmy zachłanne,
na czym polega zagadnienie algorytmiczne, jakim jest problem wydawania reszty,
jak zastosować podejście zachłanne przy rozwiązaniu problemów,
jakie są ograniczenia metody zachłannej i dlaczego algorytmy zachłanne nie zawsze znajdują najlepsze rozwiązanie dla danego problemu.
Teraz czas sprawdzić swoją wiedzę i umiejętności w praktyce.
57 i nominałów 20, 9, 6, 3 i 2 algorytm zachłanny zadziała poprawnie? Możliwe odpowiedzi: 1. Tak, 2. Nie159.9, 4, 3 i 2. 46 Możliwe odpowiedzi: 1. 9 3, 2. 9 9 9 9 4 3, 3. 9 9 9 9, 4. 4 4 12 Możliwe odpowiedzi: 1. 9 3, 2. 9 9 9 9 4 3, 3. 9 9 9 9, 4. 4 4 43 Możliwe odpowiedzi: 1. 9 3, 2. 9 9 9 9 4 3, 3. 9 9 9 9, 4. 4 4 8 Możliwe odpowiedzi: 1. 9 3, 2. 9 9 9 9 4 3, 3. 9 9 9 9, 4. 4 4Zapisz za pomocą pseudokodu algorytm zachłannego wydawania reszty. W algorytmie wykorzystaj tablicę nominałów, ale uwzględnij to, że każdego nominału można użyć tylko raz.
Program powinien wyświetlić informację o wykorzystanych nominałach oraz komunikat, czy reszta została wydana poprawnie.
Przykładowe wyjście dla reszty 912 i nominałów 500, 200, 100, 50, 20, 10, 5, 2, 1:
Specyfikacja:
Dane:
resztaDoWydania– liczba naturalna; wartość reszty do wydanian– liczba naturalna; liczba dostępnych nominałównominały– tablica liczb naturalnych; tablica dostępnych nominałów posortowana malejąco
Wynik:
komunikat dotyczący wykorzystanych nominałów i tego, czy reszta została zwrócona poprawnie.
Zdefiniuj funkcję zachlanneWydawanieReszty(), która dla reszty resztaDoWydania obliczy liczbę nominałów użytych do jej wydania. Dostępne nominały zapisane są w tablicach zloteNominaly, groszeNominaly. Nominały z tablicy groszeNominaly mają posłużyć do wydania reszty po przecinku. Przetestuj swój program dla następujących danych wejściowych:
zloteNominaly = { 500, 200, 100, 50, 20, 10, 5, 2, 1 }groszeNominaly = { 50, 20, 10, 5, 2, 1 }resztaDoWydania = 77.99
Specyfikacja:
Dane:
zloteNominaly– tablica liczb naturalnych zawierająca posortowany malejąco zbiór nominałów; nominały z tej tablicy powinny posłużyć do wydania całkowitej części resztyresztaDoWydaniagroszeNominaly– tablica liczb naturalnych zawierająca posortowany malejąco zbiór nominałów; nominały z tej tablicy powinny posłużyć do wydania rzeczywistej części resztyresztaDoWydaniaresztaDoWydania- liczba rzeczywista; kwota do wydania
Wynik:
minimalna liczba nominałów, jakich należy użyć do wydania reszty
Wynik dla podanych danych:
Zdefiniuj metodę zachlanneWydawanieReszty(), która dla każdej z reszt w tablicy resztyDoWydania obliczy, ile razy do jej wydania został użyty każdy z nominałów z tablicy nominaly. Przetestuj swój program dla następujących danych wejściowych:
nominaly = { 50, 20, 10, 5, 2, 1 }resztyDoWydania = { 234, 784, 129 }
Specyfikacja:
Dane:
nominaly– tablica liczb naturalnych; zawierająca posortowany malejąco zbiór nominałówresztyDoWydania– tablica liczb naturalnych; zawierająca reszty do wydania
Wynik:
liczba nominałów wykorzystanych do wydania reszty
Wynik dla podanych danych:
Zdefiniuj metodę zachlanneWydawanieReszty(), która dla każdej z reszt w tablicy resztyDoWydania sprawdzi, czy jest możliwe wydanie jej za pomocą nominałów z tablicy nominaly. Przetestuj swój program dla następujących danych wejściowych:
nominaly = { 9, 8, 7, 6}resztyDoWydania = { 957, 9999, 2436, 5717, 13 }
Specyfikacja:
Dane:
nominaly– tablica liczb naturalnych; zawierająca posortowany malejąco zbiór nominałówresztyDoWydania- tablica liczb naturalnych; zawierająca reszty do wydania
Wynik:
komunikat informujący, czy dana reszta może bądź nie może zostać wydana podanymi nominałami
Wynik dla podanych danych: