Lex Kravetski (lex_kravetski) wrote,
Lex Kravetski
lex_kravetski

Categories:

Практическая задача

 

 

Условия задачи: группа товарищей (численностью, предположим, до десяти человек) планирует провести совместную пьянку. В плане подготовки к ней, группа товарищей совершает набег на магазин, приобретая много продуктов и спиртных напитков. Дабы не создавать толпу у касс, расплачиваются за продукты только отдельные представители группы.

Дополнительное условие: известно, что не все люди собираются принимать участие в поглощении всего купленного (например, кто-то не пьет водку, кто-то не есть соленые огурцы, и т. п.).

Вопрос: как им потом, блин, расплатиться друг с другом?

 

Практическое решение выливается в три возможных сценария:

1.             Если потраченные суммы небольшие, то расплата производится из общих соображений – кто сколько пожертвует. Но этот вариант не всегда подходит при больших мероприятиях с суровыми суммарными затратами.

2.             Производится мощный забив на совместную покупку, и каждый покупает сам себе, чего хочет. Этот вариант не всегда технически осуществим и не всегда экономичен: обычно бутылку водки в литр емкостью на одно лицо не берут, а если взять три по триста на троих, то имеется существенный суммарный проигрыш по цене. С кока-колой – аналогично.

3.             Совместная покупка таки осуществляется, после чего следуют долгие дебаты на тему: кто в чем участвует и кто кому чего должен. Потом производятся нетривиальные вычисления в уме и не менее долгая, нетривиальная расплата.

 

Адекватным решением задачи в теории предполагается следующее: пишется некая программа, в которую заносятся цены всех покупок и участие каждого товарища в потреблении каждого купленного продукта (не участвует/участвует и доля участия). Потом в программу заносится денежный взнос каждого участника при его расплате в кассе магазина.

Результатом работы программы является набор чисел. Положительные числа означают добавочный взнос в рублях каждого конкретного участника в «общий котел». Отрицательные – получение участником суммы из общего котла.

Нетрудно видеть, что такой способ расчета наиболее простой и быстрый, кроме того, он включает в себя, как частные случаи, перечисленные ранее три сценария.

Сама по себе задача не очень сложна по реализации, но довольно интересна в плане: «подумать над решением». Решать ее предлагается посредством Microsoft Excel. Мега-подсказка: задача решается без программирования, достаточно таблицы и использования функций в ее ячейках.

 

Тем, кому лень решать, но в хозяйстве иметь данную программу хочется, могу выслать результат собственного решения этой задачи.

 

 

Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 9 comments