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

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

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

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

Условия:

  • В продуктовый магазин привезли два пакета — с орехами и сухофруктами. 
  • Продавец ссыпал всё в один пакет и перемешал.
  • Продавец сложил стоимость привезённых орехов с сухофруктами и поделил на общий вес в 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
Как угадать число за 7 попыток: математический трюк
Как угадать число за 7 попыток: математический трюк

Простой математический трюк, который раскрывает мощь алгоритмов

easy
Сколько нужно ленты для передачи данных?
Сколько нужно ленты для передачи данных?

Задача, которая ставит в тупик взрослых, хотя казалось бы

easy
Задача про персональные данные
Задача про персональные данные

Настоящая задача XXI века.

medium
Задача про границы, где вам нужно выйти за них, чтобы её решить
Задача про границы, где вам нужно выйти за них, чтобы её решить

С первого раза у вас точно не получится

easy
easy