1. Угадать число, значит понять каким набором гирь его можно взвесить.
Пусть N = 1000. Чтобы взвесить число до 1000 можно взять "эффективный набор" из 10 гирь {512, 256,128, 64, 32, 16, 8, 4, 2, 1}
При взевшенивании, первой на весы ставим гирю 512. Переведем "результат" взвешивания в вопрос
- Ваше число БОЛЬШЕ 511?
- Ответ
ДА
означает, что гиря 512 должна остаться на весах
- Ответ
НЕТ
означает, что гиря 512 должна быть убрана с весах
- Второй вопрос может быть сформули одним из двух способов
- Ваше число БОЛЬШЕ 767? - это если ответ на 1 вопрос был
ДА
- Ваше число БОЛЬШЕ 255? - это если ответ на 1 вопрос был
НЕТ
и так далее.
В результате, за десять вопросов, число будет угадано.
Может показаться, что будет лучше использовать в первом вопросе число 500 или задавать вопросы со словом РАВНО. Это обманчивое желание, поскольку, если наш Соперник "жульничает" (то есть может менять число, но так, чтобы ответы были правдивые) то быстрее чем за десят вопросов угадать не получится (10 вопросов потребуется и для N = 513).
Указанным набором можно за десять вопросов угадать число от 1 до 1024, поэтому набор гирь из степеней 2 будет оптимальным.
Можно считать, что минимальное количество вопрсов, которое необходимо задать для угадывания числа от 1 до N есть количество информации, которую надо получить. Получение информации с помощью вопросов ДА/НЕТ сопровождается уменьшением количества вариантов не менее, чем в два раза и считается, что при вопросах такого типа получается 1 бит информации