Ваш друг предложил вам угадать число, которое он задумал. За какое наименьшее число вопросов (на эти вопросы он может ответить либо да, либо нет) можно гарантированно угадать число? Известно, что число натуральное и не превосходит .
В данной ситуации бессмысленно просто угадывать число так как пришлось бы задать максимум вопросов, а это слишком много. Значит, нужно как-то делить эти числа между собой. При этом лучше их делить пополам, ведь если спросить в первой ли число трети от всех можно получить ответ нет, и тогда нужно искать его в оставшихся двух третьих чисел.
Тогда сначала задаем вопрос «Это число находится в большей половине от всех чисел?»
Если ответ «Да», то число находится от до
. «Нет» — от
до
.
Допустим число — .
Тогда на вопрос будут ответы: нет , да
, нет
, нет
, нет
, да
, нет
.
Заметим, что если перевести все «Да» в , а «Нет» в
, то получится код
, а
. Они отличаются на единицу, потому что мы считали от
до
, а
битами можно записать
.
Значит число можно отгдадать за вопросов. Таким образом, мы, можно сказать, с каждым вопросом узнаем по
биту числа.