Если разбор с ланч боксами был вам понятен, то с этой упаковкой вам не составит труда разобраться. Смотрите, формула для большой черной упаковки роллов:
(y1+y2*3|2)\3
где в переменную y1 мы положили простые роллы (с огурцом), а в y2 – просто роллы (например, филадельфия).
Если вновь вспомнить математику и раскрыть скобки, то получится:
(y1+y2*3|2)\3 = y1\3 + y2*3|2\3 = y1\3 + y2\2. То есть это просто значит, что простые роллы занимают в упаковке одну третью места, а роллы типа Филадельфии – половину места в упаковке.
Так что мы можем заменить формулу, кажущуюся сложной (y1+y2*3|2)\3
на y1\3 + y2\2. В виде (y1+y2*3|2)\3 нагляднее читается, что роллы y2 больше y1 в полтора раза. В виде y1\3 + y2\2 понятнее, сколько места занимают роллы относительно упаковки. В общем, кому как понятнее. Можно и так, и так.
Проверим формулы. Например, гость заказал 3 ролла с огурцом и 2 филадельфии.
(y1+y2*3|2)\3
(3+2*3|2)\3
(3+3)\3
6\3
2
Нужно 2 больших черных упаковок, чтобы упаковать 3 ролла с огурцом (каждый из них занимает треть упаковки) и 2 филадельфии (каждая из них занимает половину упаковки). Всё сходится.
y1\3 + y2\2
3\3 + 2\2
1+1
2
И вновь всё сходится.
С маленькой черной упаковкой аналогично ланч боксам, просто меняем знак деления на остаток от деления – формула будет (y1+y2*3|2)%3. То есть всё, что у нас не влезает в большую упаковку, пойдет в маленькую.
Например, гость заказал 1 ролл с огурцом.
Формула большой упаковки: (y1+y2*3|2)\3 = (1 + 0)\3 = 1\3 = 0 (округлили в меньшую сторону). Большая упаковка не нужна.
Формула маленькой упаковки: (y1+y2*3|2)%3 = (1 + 0)%3 = 1%3 = 1 (остаток от деления есть). Нужна 1 маленькая упаковка.