R1T11P5ZL3BNZ

I_R_W14_M37_Java Algorytmy zachłanne

Źródło: Scott Webb, domena publiczna.
Już wiesz
  • 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.

Ćwiczenie 1
R1P6MK8B6GSCU
Wymyśl pytanie na kartkówkę związane z tematem materiału.
Ćwiczenie 2
R1GP2RV9NCN9Q
Czy dla reszty równej 57 i nominałów 20, 9, 6, 3 i 2 algorytm zachłanny zadziała poprawnie? Możliwe odpowiedzi: 1. Tak, 2. Nie
Ćwiczenie 3
RMDO81H3N6683
Jakie monety może wybrać aslgorytm zachłanny, jeśli reszta do wydania równa jest 36? Możliwe odpowiedzi: 1. 9 9 9 9, 2. 10 8 6 6 6, 3. 9 9 8 6 4, 4. 11 11 11 1 1 1
R1NNEPAOM6MHG
Jakie monety może wybrać aslgorytm zachłanny, jeśli reszta do wydania równa jest 36? Możliwe odpowiedzi: 1. 9 9 9 9, 2. 10 8 6 6 6, 3. 9 9 8 6 4, 4. 11 11 11 1 1 1
Ćwiczenie 4
R9UGQPH83UETZ
Jakiej reszty nie wyda algorytm zachłanny jeśli dostępne nominały to 8, 7, 5, 4 i 3? Możliwe odpowiedzi: 1. 94, 2. 122, 3. 65, 4. 112
Ćwiczenie 5
RHZB3E1EM4TB1
Algorytm zachłanny wydawania reszty może niepoprawnie dobrać monety, ale poprawnie zwrócic monety. Możliwe odpowiedzi: 1. Prawda, 2. Fałsz
Ćwiczenie 6
R1S71PT9LKEDK
Wstaw w tekst w odpowiedniej kolejnośći nominały, które zostaną użyte przez zachłanny algorytm wydawania reszty równej 159.
Ćwiczenie 7
RMC8KEZRDFGN2
Połącz w pary wartość reszty z monetami, które może użyć algorytm zachłanny do ich wydania? Mam nieograniczony dostęp do monet 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 4
Ćwiczenie 8
R161AKVSHGJD3
Jeśli możemy użyć monety jedno złotowej niezależnie od pozostałych nominałów algorytm zawsze zwróci optymalny wynik dla reszty całkowitoliczbowej? Możliwe odpowiedzi: 1. Prawda, 2. Fałsz
Ćwiczenie 9

Zapisz 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:

Linia 1. Wykorzystano nominał dwukropek 500. Linia 2. Wykorzystano nominał dwukropek 200. Linia 3. Wykorzystano nominał dwukropek 100. Linia 4. Wykorzystano nominał dwukropek 50. Linia 5. Wykorzystano nominał dwukropek 20. Linia 6. Wykorzystano nominał dwukropek 10. Linia 7. Wykorzystano nominał dwukropek 5. Linia 8. Wykorzystano nominał dwukropek 2. Linia 9. Wykorzystano nominał dwukropek 1. Linia 10. Reszta nie została zwrócona poprawnie.

Specyfikacja:

Dane:

  • resztaDoWydania – liczba naturalna; wartość reszty do wydania

  • n – liczba naturalna; liczba dostępnych nominałów

  • nominał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.

R57RLA93ADLAL
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
1
Ćwiczenie 10

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 reszty resztaDoWydania

  • groszeNominaly – 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 reszty resztaDoWydania

  • resztaDoWydania - liczba rzeczywista; kwota do wydania

Wynik:

  • minimalna liczba nominałów, jakich należy użyć do wydania reszty

Wynik dla podanych danych:

Linia 1. Liczba nominalow uzytych do wydania reszty 77 kropka 99 dwukropek 10.
R1LProooyFpgc
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
1
Ćwiczenie 11

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łów

  • resztyDoWydania – tablica liczb naturalnych; zawierająca reszty do wydania

Wynik:

  • liczba nominałów wykorzystanych do wydania reszty

Wynik dla podanych danych:

Linia 1. Reszta do wydania dwukropek 234 kropka Liczba użytych w sumie banknotów i monet dwukropek 8. Linia 2. Nominal 50 dwukropek 4. Linia 3. Nominal 20 dwukropek 1. Linia 4. Nominal 10 dwukropek 1. Linia 5. Nominal 5 dwukropek 0. Linia 6. Nominal 2 dwukropek 2. Linia 7. Nominal 1 dwukropek 0. Linia 8. Reszta do wydania dwukropek 784 kropka Liczba użytych w sumie banknotów i monet dwukropek 19. Linia 9. Nominal 50 dwukropek 15. Linia 10. Nominal 20 dwukropek 1. Linia 11. Nominal 10 dwukropek 1. Linia 12. Nominal 5 dwukropek 0. Linia 13. Nominal 2 dwukropek 2. Linia 14. Nominal 1 dwukropek 0. Linia 15. Reszta do wydania dwukropek 129 kropka Liczba użytych w sumie banknotów i monet dwukropek 6. Linia 16. Nominal 50 dwukropek 2. Linia 17. Nominal 20 dwukropek 1. Linia 18. Nominal 10 dwukropek 0. Linia 19. Nominal 5 dwukropek 1. Linia 20. Nominal 2 dwukropek 2. Linia 21. Nominal 1 dwukropek 0.
R1604iv7Jurrz
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
1
Ćwiczenie 12

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łów

  • resztyDoWydania - 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:

Linia 1. Reszta 957 nie moze zostac wydana nominalami 9 8 7 6. Linia 2. Reszta 9999 moze zostac wydana nominalami 9 8 7 6. Linia 3. Reszta 2436 moze zostac wydana nominalami 9 8 7 6. Linia 4. Reszta 5717 nie moze zostac wydana nominalami 9 8 7 6. Linia 5. Reszta 13 nie moze zostac wydana nominalami 9 8 7 6.
RZ1ZKDdGDV5B3
Wymyśl pytanie na kartkówkę związane z tematem materiału.