Informatyka 2
FilmProgramowanie w Pythonie. Algorytmy zachłanne. Wiele monet
Film omawia stosowanie algorytmów zachłannych na przykładzie wydawania reszty przy użyciu minimalnej liczby monet.
Ćwiczenie 0
Zaopatrzeniowiec dostaje listę zakupów. Martwi się, aby nie przekroczyć dopuszczalnego udźwigu po załadowaniu samochodu. Zdefiniuj funkcję zakupy(c, m, z)
, której parametrami są liczby worków c
– cukru, m
– mąki i z
– ziemniaków. Worki cukru ważą 2 kg, mąki 5 kg i ziemniaków 12 kg. Udźwig samochodu wynosi 500 kg. Wynikiem funkcji jest True
, gdy samochód może przewieźć zakupy, lub False
, gdy zostanie przekroczony udźwig. Sprawdź działanie funkcji dla podanych poniżej parametrów.
- Wynikiem funkcji
zakupy(4, 9, 12)
jestTrue
. - Wynikiem funkcji
zakupy(12, 34, 43)
jestFalse
.
Wskazówka
Należy znaleźć łączną wagę produktów, a potem porównać wynik z 500. Łączną wagę produktów obliczamy, mnożąc liczbę worków przez ich masy, potem poszczególne liczby dodajemy do siebie.
Ćwiczenie 1Trzy monety
Dysponujesz nieograniczoną liczbą monet o nominałach 5, 3 i 1 i masz wydać resztę przy użyciu minimalnej liczby monet. Zdefiniuj funkcję trzy(kwota)
, której wynikiem będzie minimalna liczba monet potrzebnych do wydania kwoty podanej jako parametr. Sprawdź działanie funkcji dla podanych poniżej parametrów.
- Wynikiem funkcji
trzy(11)
jest3
. - Wynikiem funkcji
trzy(99)
jest21
.
Ćwiczenie 2Wiele monet
Dysponujesz nieograniczoną liczbą monet o nominałach 20, 10, 5, 2 i 1 i masz wydać resztę przy użyciu minimalnej ich liczby. Zdefiniuj funkcję wiele(kwota)
, której wynikiem będzie minimalna liczba monet potrzebnych do wydania kwoty podanej jako parametr. Sprawdź działanie funkcji dla podanych poniżej parametrów.
- Wynikiem funkcji
wiele(11)
jest2
. - Wynikiem funkcji
wiele(99)
jest8
.
Ćwiczenie 3Ograniczona liczba monet
Dysponujesz podaną liczbą monet o określonych nominałach i masz wydać resztę przy użyciu minimalnej ich liczby. Zdefiniuj funkcję monety(kwota, nominaly, sztuki)
, której wynikiem będzie minimalna liczba monet potrzebnych do wydania kwoty podanej jako parametr. Sprawdź działanie funkcji dla podanych poniżej parametrów.
- Wynikiem funkcji
monety(11, [20, 10, 5, 2, 1], [100, 100, 100, 100, 100])
jest2
. - Wynikiem funkcji
monety(99, [20, 10, 5, 1], [1, 10, 1, 10])
jest13
.
Ćwiczenie dodatkowe 1
Zaopatrzeniowiec ma kupić cukier, mąkę i ziemniaki. Chce załadować jak najwięcej do samochodu, ale tak, by nie przekroczyć jego udźwigu wynoszącego x
kg i przewieźć jak najmniejszą liczbę opakowań. Zdefiniuj funkcję zakupy(x)
, której parametrem jest udźwig, a wynikiem – łączna liczba opakowań towarów. Worki cukru ważą
2 kg, mąki 5 kg i ziemniaków 12 kg. Sprawdź działanie funkcji dla podanych poniżej parametrów.
- Wynikiem funkcji
zakupy(127)
jest12
. - Wynikiem funkcji
zakupy(100)
jest10
.
Ćwiczenie dodatkowe 2
Zaopatrzeniowiec ma kupić cukier, mąkę i ziemniaki. Chce załadować jak najwięcej do samochodu, ale tak, by nie przekroczyć jego udźwigu wynoszącego x
kg i przewieźć jak najmniejszą liczbę opakowań. Dodatkowo nie może kupić więcej niż ile
opakowań jednego towaru. Zdefiniuj funkcję zakupy(x, ile)
, której parametrami są udźwig i maksymalna liczba opakowań jednego towaru, a wynikiem jest łączna liczba opakowań towarów. Worki cukru ważą 2 kg, mąki 5 kg i ziemniaków 12 kg. Sprawdź działanie funkcji dla podanych poniżej parametrów.
- Wynikiem funkcji
zakupy(127, 9)
jest14
. - Wynikiem funkcji
zakupy(127, 12)
jest12
.
Pytania quizoweMetoda zachłanna i dynamiczna
-
Które ze stwierdzeń dotyczy metody zachłannej?
-
-
Czy dla każdego typu problemów algorytmy zachłanne dają optymalne rozwiązanie?
-
-
Na czym polega dynamiczne podejście do rozwiązania?
-