14446
Вопросы про Python для чайников. Cпам и троллинг неприемлем. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Правила группы: https://t.me/ru_python_beginners/1649981
Вы были правы. Почему то в локе был более старый пайдантик. Но не изза пина а по другим каким-то причинам. Пришлось удалять лок и заново генерить, так норм
Читать полностью…
если окажется, что ты сам себе версию запинил, то война с ветренными мельницами была успешной
Читать полностью…
То есть зависимость доп в поетри добавить в виде пайлантика более нового
Читать полностью…
Aiogram dialog пока 14 питон не поддеживает , все верно?
Читать полностью…
Только скорее всего дешевле, ибо нафиг нам все варианты знать...
Читать полностью…
решение чуть костыльное и скорее всего можно и даже нужно лучше, но просто чтобы осознать чо такое динамическое программирование -- пойдодёт
а чтобы решить оригинальную задачу, когда монетки конечные и их разное количество, то надо немного подумать
покрывает вроде как все варианты
Читать полностью…
def give_money(N, x1, n1, x2, n2, x3, n3):
for c1 in range(min(x1, N // n1), -1, -1):
r1 = N - c1 * n1
for c2 in range(min(x2, r1 // n2), -1, -1):
r2 = r1 - c2 * n2
if r2 % n3 == 0:
c3 = r2 // n3
if c3 <= x3:
return [c1, c2, c3]
return None
print(give_money(230, 3,100, 5,50, 10,20)) # [1, 1, 4]
print(give_money(7, 1,5, 1,3, 1,2)) # [1,0,1]
print(give_money(100, 0,100, 0,50, 0,20)) # None
print(give_money(18, 10,10, 10,9, 10,1)) # [1,0,8]
print(give_money(18, 1,10, 1,2, 1,5)) # None
но вообще можно идти с начала и тут логика достаточно легко может прослеживаться
Читать полностью…
и тут мы хоба уже дошли до 2, 3 -- которые мы вполне можем получить
Читать полностью…
я бы лучше посмотрел как можно получить 8 - 7, 8- 3, 8 - 2 из тех же купюр (1, 5, 6)
Читать полностью…
перебирать снизу по ресурсам дешевле, чем сверху
Читать полностью…
А поетри show tree оказывается просто показывается дерево 🌲 зависимости из лока, а не зависимости требуемые самих либ
Читать полностью…
Вроде пинил специально максимальные, пайдантика в зависимостях прямых нет
Читать полностью…
зависимости из пупроджекта можно и без поэтри прочитать
Читать полностью…
https://github.com/aiogram/aiogram/blob/v3.28.2/pyproject.toml#L46
Читать полностью…
ваще и это покрывает задачу в большинстве случаев, но к примеру первый принт тогда вернет None хотя деньгами мы можем выдать, эт первый варик что сделал, но он прям оч дешевый, прошлый покрывает любую по идеи ситуацию
def give_money(N, x1, n1, x2, n2, x3, n3):Читать полностью…
res = [0, 0, 0]
summ = N
if summ:
res[0] = min(x1, summ // n1)
summ -= res[0] * n1
if summ:
res[1] = min(x2, summ // n2)
summ -= res[1] * n2
if summ:
res[2] = min(x3, summ // n3)
summ -= res[2] * n3
if summ:
return None # "денег нет, но вы держитесь"
return res
print(give_money(230, 3,100, 5,50, 10,20)) # None
print(give_money(7, 1,5, 1,3, 1,2)) # [1,0,1]
print(give_money(100, 0,100, 0,50, 0,20)) # None
print(give_money(18, 10,10, 10,9, 10,1)) # [1,0,8]
print(give_money(18, 1,10, 1,2, 1,5)) # None
А можно взять в лапки поиск в ширину с отсечениями, и получить примерно то же самое.
Читать полностью…
мы говорим, что dp[i] = массиву из монеток, из которых i можно собрать
тогда dp[i] = 0 для всех i, кроме тех монеток, которые у нас изначально есть
в таком случае dp[2] = [2], dp[3] = [3], dp[7] = [7]
рассмотрим dp[4], есть варианты пойти в индексы (4-2, 4-3, 4-7) = (2, 1, -3). индекс -3 отбрасываем -- отрицательные не нужны, dp[1] == 0, поэтому тоже скип
dp[2] = 2
тогда dp[4] = [4-2] + dp[2] = [2,2]
dp[5], тут индексы (3, 2, -2), -2 отбрасываем,
dp[5] = [5-3] + dp[3] или [5-2] + dp[2]
итого получаем dp[5] = [2, 3] или [3, 2] -- выбираем вообще любую и идём считать дальше
ну и вот такими рассуждениями можем достроить до dp[8] и узнать из каких монеток можно собрать сумму 8
Если про реальный банкомат, то многие современные банкоматы с функцией Cash in, кладут купюры в кассеты из которых выдают деньги, так что каждый раз при выдачи нужно было бы делать проверку остатка в кассетах.
Читать полностью…
Если , что я только базу при базу освоила, так что как могу говориться. Ну и плюс вариант, когда сумму никак нельзя получить теми купюрами что имеем (-1)
Читать полностью…
а на следующей итерации можно посмотреть 5 - 3, 5 - 2, 6 - 3, 6 - 2, иначе говоря (2, 3, 4)
Читать полностью…
Тогда мой алгоритм "запишет" одну купюру в 7, а потом застопорится, хотя денег хватает (мог бы выдать 2х3 и 1х2 или 4х2)...
Читать полностью…
Представь что у тебя есть купюры
7
3
2
А ты хочешь выдать 8