/ it Задачи / Взвешивание таблеток

Взвешивание таблеток

Взвешивание таблеток

07 декабря 2016 в 13:13
Для решения этой задачи на взвешивание вам не понадобиться программирование, вместо него нужна будет логика.
У вас есть 20 баночек, в каждой из которых находится какое-то количество таблеток. Все таблетки весят по 1 грамму, кроме одной банки, в которой каждая таблетка весит 1.1 грамм. Соответсвенно у вас есть 19 баночек с одинаковым весом и еще одна банка, которая будет весить больше остальных. Задача: вам необходимо за одно взвешивание понять какая из баночек является именно той, где все таблетки весят больше. Весы, на которых вы будете взвешивать дают точную цифру.

Решение задачи

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

Мы можем поступить следующим образом. С первой банки мы возьмем всего одну таблетку, со второй мы возьмем две таблетки, с третьей мы возьмем три и так далее. Таким образом с последней банки мы возьмем 20 таблеток и всю эту кучу таблеток вместе поместим на весы чтобы взвесить.

Если бы все таблетки весили по 1 грамму, то суммарный вес составил бы 210 граммов. Можете сами посчитать: сумма всех чисел от 1 до 20 (как раз 210). Все что будет выше, это как раз наши таблетки весом 1,1 грамм.

Получается, что узнать в какой банке были тяжелые таблетки можно по следующей формуле: (вес того что получилось — 210) / 0.1. В таком случае, если бы, к примеру, общий вес составил 211.3 г, то подставив это число в формулу мы бы получили число 13, что означало бы, что тяжелые таблетки как раз в этой банке.

Больше интересных новостей