Aktywne Wpisy

mirko_anonim +7
✨️ Obserwuj #mirkoanonim
Organizuje wesele na 240 gości, realnie spodziewamy się ok. 200. Czy wypada wynająć ochronę, w sensie ze 2-3 gości którzy będą pilnować spokoju i ew. wyciszać konflikty. Wiem, że wśród gości mogą być osoby które mają miedzy sobą zatargi, staraliśmy się eliminować takie osoby z grona gości ale na pewno w 100% się nie udało. Przesłanki są jednak następujące, że jedna osoba przy wręczaniu zaproszenia od razu zapytała
Organizuje wesele na 240 gości, realnie spodziewamy się ok. 200. Czy wypada wynająć ochronę, w sensie ze 2-3 gości którzy będą pilnować spokoju i ew. wyciszać konflikty. Wiem, że wśród gości mogą być osoby które mają miedzy sobą zatargi, staraliśmy się eliminować takie osoby z grona gości ale na pewno w 100% się nie udało. Przesłanki są jednak następujące, że jedna osoba przy wręczaniu zaproszenia od razu zapytała

sebnysa +121
Mam 17 letniego psa, za godzinę mam umówioną wizytę żeby go uśpić. Jak to ogarnąć…





mamy funkcję, która w automacie vendingowym wydaje resztę z monet, które są na liście przekazanej parametrem:
def optimalnumberofcoins(n, coins):
results = []
indexstart = 3
counter = 0
for i in range(3, -1, -1):
print(i)
counter = 0
left = int(n)
iTmp = i
while left > 0:
#change lower then denomination
if left % coins[iTmp] == left:
iTmp -= 1
elif left % coins[iTmp] >= 1:
counter +=1
left = left - coins[iTmp]
else:
left = left - coins[iTmp]
counter +=1
results.append(counter)
print("Rozpoczęto od nominału",i, "Monet wydano", counter)
return min(results)
test funkcji poniżej:
Test.assertequals(optimalnumberofcoins(76, [1, 3, 4, 10]), 9)
Ponieważ nie zawsze wydawanie od największych nominałów jest najbardziej efektywne pod względem liczby monet, stąd w pętli sprawdzałem przebiegi dla przypadków, kiedy mniejsze nominały niż największe dają lepszy rezultat,
Ale OP okazał się być wyjątkowo autystyczny i sprawa wygląda tak, że wcale nie musi lecieć wydawanie po kolei, a może być bardziej efektywny przypadek, gdzie wydajemy
7 * 10 + 1 * 3 + 1 * 3 => 9 monet
niż np.
7 * 10 + 1 * 4 + 2 * 1 => 10 monet.
I nie wiem jak to ugryźć, może ma ktoś pomysł.
Przyszło mi do głowy brutalne liczenie po kolei, ale podejrzewam że musi być metoda. Może jakaś podpowiedź?
#python #programowanie
daj mi 10 minut to spróbuje napisać xd
Z metod czasochłonnych, to myślałem nad chamskim przeszukiwaniu tej listy i liczeniu na zasadzie
1. Biorę 4 pozniej 3 pozniej 2 pozniej 1 results.append(counter)
2. biorę 4 pozniej 2 pozniej