bitcoinВот тут выше вам подсказывают, как очень просто понять, сколько взвешиваний минимально необходимо при любом числе бутылок. Так-то не очевидно, что нужно всегда делить бутылки поровну на 3 равные части. Есть же и другие варианты. Вот как нужно рассуждать.
Каждое взвешивание имеет три варианта исхода: правое тяжелее, левое тяжелее, оба равны (очевидно, ставим всегда равное число бутылок на весы с обеих сторон, т.к. в противном случае нам ответ заранее известен). Допустим, пометим исходы взвешивания, как
. Выполнив
взвешиваний, имеем
возможных последовательностей результатов взвешиваний. Например, такую:
. В результате
взвешиваний мы должны ответить на вопрос о том, какая бутылка легче. У нас всего
результирующих разных последовательностей, т.е. мы не можем по результатам этих взвешиваний получить более, чем
разных ответов о том, какая бутылка легче. Если бутылок у нас больше, чем вообще существует разных возможных ответов (разных последовательностей), то мы не можем решить задачу однозначно.
Есть такой известный принцип Дирихле: если число бутылок больше, чем число всевозможных разных результатов взвешиваний, то по крайней мере один конкретный результат взвешивания соответствует двум разным бутылкам, т.е. решение не однозначно.
В решении этой задачи логика такая же, как и при доказательстве того факта, что никакой архиватор не может сжать все возможные файлы (скажем, все возможные файлы длиной 1000 бит). Если бы некоторый архиватор был устроен так, что мог бы сжать каждый из этих файлов хотя бы на 1 бит, то он неизбежно столкнулся бы с проблемой: всевозможных файлов из 1000 бит больше, чем всевозможных файлов из 999 бит. Такому архиватору пришлось бы некоторые 1000 битные файлы сжать в одинаковые 999 битные файлы, в результате чего обратное разархивирование становится неоднозначным.