В Вашем задание напитки стоят в следующем порядке по предпочтению
'Кон Панна', 'Латте Маккиато', 'по-венски', 'Маккиато', 'Капучино', 'Эспрессо '
однако в приведённом примере [4, 4, 0] 'Капучино' почему то находится предпочтительнее 'Маккиато', что противоречит условию задачи. Ну да ладно.
Сделал на Python с применением рекурсии. Всё считается замечательно. Если будут вопросы - задавайте.
Объяснение:
Espresso=(1,0,0)
Capuchino=(1,3,0)
Maciato=(2,1,0)
Viena=(1,0,2)
LateMak=(1,2,1)
ConPanna=(1,0,1)
mss=(ConPanna, LateMak, Viena, Maciato, Capuchino, Espresso)
mssName=('Кон Панна', 'Латте Маккиато', 'по-венски', 'Маккиато', 'Капучино', 'Эспрессо ')
coff, milk, sl = map(int, input('Введите количество кофе_молока_сливок: ').split() )
def choose_coffee(ind, var, preference0, preference1, preference2):
if ((mss[ind][0] <= preference0) and (mss[ind][1]<=preference1) and (mss[ind][2]<=preference2)):
preference0 = preference0 - mss[ind][0]
preference1 = preference1 - mss[ind][1]
preference2 = preference2 - mss[ind][2]
print(mssName[ind])
var += 1
ind += 1
if ind<6:
choose_coffee(ind, var, preference0 , preference1, preference2)
if (var==0)and(ind==6):
print('Вариантов нет')
exit
choose_coffee(0, 0, coff, milk, sl)
12) 4 (1 байт (1 байт-8 бит-2^8=256 вариаций));
13) 2
14) 1 (чорно-біле зображення - 1 біт на точку. 100х100х1=10,000 біт.)
15) на один ЧБП приходится 4 біта, тому що 2 в 4-ій степені - це і єсть 16. Маємо 10*10 точок, тобто 100 ЧБП. Отде, файл має рощмір 4 біта помножити на 100 = 400 біт (10*10*4=400)
16) 5 (для того, щоб краще зрозуміти, візьмемо малюнок із однієї точки чорної або білої.
0-чорна, 1-біла, потрібен 1 біт інформації.
Тепер, будемо кодувати точку із 4 кольорів: 0 0 - чорна, 0 1 - біла, 1 0 - червона, 1 1 синя. Потрібно 2 біта (дві ячейки, які можуть бути 1 або 0).
Для точки із 8 кольорів потрібно 3 біта, (три ячейки 1 або 0)
для точки із 16 кольорів потрібно 4 біта (2 в четвертій степені).
Щоб закодувати чисто 256 кольорів, потрібно 8 біт (2 в восьмій степені).
Щоб закодувати 100 точок (10*10=100), потрібно 8*100 =800 біт.
17) 3
18) 3
19) 3
20) 2,5