Aktywne Wpisy
xena_x +4
Chciałabym mieć mężczyznę przyjaciela ale w tych czasach to chyba niemożliwe. Za każdym razem jak ujawniam moje preferencje oraz to jak widziałabym mój wymarzony związek ludzie odpowiadają mi żebym przygotowała się na samotność, bo nie nadaję się do związku i żebym udała się do terapeuty. Co więcej kobiety tak mówią, że jak nie chce uprawiać seksu z mężczyzną, to po co w ogóle mi związek? Jakbym była jakimś pudłem którego funkcją jest
OCIEBATON +303
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 1 results.append(counter)
3. biore 4 pozniej