Непростая задача про орехи

Посчитать легко, но сложно найти правильный алгоритм.

Непростая задача про орехи

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

Условия:

  • В продуктовый магазин привезли два пакета — с орехами и сухофруктами. 
  • Продавец ссыпал всё в один пакет и перемешал.
  • Продавец сложил стоимость привезённых орехов с сухофруктами и поделил на общий вес в 32 килограмма. Получилась цена смеси в 285 рублей за килограмм.
  • Вскоре накладные на товар потерялись, и мы больше не знаем, сколько килограмм было в каждом пакете по отдельности.
  • Но мы знаем стоимость предыдущих поставок: 300 рублей за килограмм орехов и 240 за кило сухофруктов.

Задача: узнать вес привезённых пакетов с орехами и сухофруктами, чтобы поставить их на учёт.

Начнём с того, что у нас есть: посчитаем общую стоимость смеси, которая получилась в итоге.

32 килограмма × 285 рублей/кг = 9120 рублей.

Теперь неинтуитивная часть. Находить решение задачи мы будем через разницы стоимостей каждого из компонентов смеси. Сначала мы поймём, сколько стоила бы смесь, если бы в ней были только орехи или только сухофрукты. И потом через разницу сможем установить всё, что нужно. 

Если бы вся смесь была только из сухофруктов по 240 рублей за кило, то она бы стоила:

32 килограмма × 240 рублей/кг = 7680 рублей. 

Но наша смесь стоит дороже, потому что в ней есть орехи. Из-за того, что к сухофруктам добавили дорогие орехи, они стали стоить на 9120 − 7680 = 1440 рублей. Это общая разница в стоимости между итоговой смесью и одними сухофруктами.

Разница между стоимостью одного килограмма орехов и сухофруктов = 300 − 240 = 60 рублей. Другими словами, каждый килограмм орехов в этой смеси делал бы ее стоимость на 60 рублей больше. Если бы мы взяли 31 кг сухофруктов и 1 кг орехов, то общая стоимость была бы 7680 + 60 рублей. Если бы мы взяли 30 кг сухофруктов и 2 кг орехов, то 7680 + 120 рублей.

Если продолжить так добавлять орехи, то в какой-то момент разница в стоимости станет 1440 рублей — именно эту разницу мы вычислили чуть выше. Осталось понять, сколько раз нужно «подсыпать» орехов в эту смесь, чтобы получить такую стоимость: 

1440 / 60 = 24 килограмма.

А раз вся смесь весит 32 килограмма, легко посчитать вес оставшихся сухофруктов: 32 – 24 = 8 килограмм.

Настоящий кладовщик всегда проверит расчёты, поэтому сделаем как кладовщик:

24 × 300 = 7200 рублей — столько стоят орехи в смеси;

8 × 240 = 1920 рублей  — столько стоят сухофрукты в смеси.

Итого: 7200 + 1920 = 9120 рублей — общая стоимость, всё сходится.

Редактура:

Максим Ильяхов

Художник:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Мария Дронова

Соцсети:

Олег Вешкурцев

Вам может быть интересно
Задача о подозрительном автосалоне
Задача о подозрительном автосалоне

Что будет, если продавать машины дешевле себестоимости.

easy
Задача о деньгах
Задача о деньгах

Пропало 300 рублей, но никто этого не заметил.

medium
Андрюха, у нас логика! Возможно, криминал
Андрюха, у нас логика! Возможно, криминал

Логическая задача о преступности.

easy
Задача про драконьи яйца. Призываем программистов
Задача про драконьи яйца. Призываем программистов

Уровень: начинающий.

easy
Задача про кадровика
Задача про кадровика

Находим решение в сложных условиях.

easy
Задачка на алгоритмы: уничтожить роботов
Задачка на алгоритмы: уничтожить роботов

Прошиваем железяки, чтобы они самоуничтожились.

medium
Задача про пять Элвисов и ограбление банка
Задача про пять Элвисов и ограбление банка

Решаем логически и как программисты

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

Попробуйте решить и вы

easy
Задача про команду программистов, тимлида и таск-трекер
Задача про команду программистов, тимлида и таск-трекер

Описание простое, а задачка — нет

easy
easy