Для определения целого числа в диапазоне от 1 до 50 минимальное количество вопросов во втором («программном») режиме составляет 6. Шаг 1: Определение минимального количества вопросов Для нахождения задуманного числа используется логарифмическая зависимость, основанная на поиске в двоичном дереве. Минимальное количество вопросов для диапазона из чисел определяется неравенством:
- Для диапазона от 0 до 15 (всего 16 чисел):
Следовательно, необходимо 4 вопроса. Для диапазона от 1 до 50 (всего 50 чисел):
Следовательно, необходимо 6 вопросов.
Шаг 2: Построение списка вопросов в программном режиме В программном режиме вопросы не могут зависеть от предыдущих ответов. Чтобы гарантированно определить число, каждый вопрос должен проверять состояние одного бита в двоичном представлении числа. Любое число от 1 до 50 в двоичной системе записывается максимум 6 знаками (битами). Список вопросов для диапазона 1–50:
- Содержит ли двоичная запись числа единицу в разряде (является ли число нечетным: 1, 3, 5, ..., 49)? Содержит ли двоичная запись числа единицу в разряде (остаток от деления на 4 равен 2 или 3: 2, 3, 6, 7, 10, 11...)? Содержит ли двоичная запись числа единицу в разряде (лежит ли число в интервалах 4–7, 12–15, 20–23 и т.д.)? Содержит ли двоичная запись числа единицу в разряде (лежит ли число в интервалах 8–15, 24–31, 40–47)? Содержит ли двоичная запись числа единицу в разряде (лежит ли число в интервалах 16–31, 48–50)? Содержит ли двоичная запись числа единицу в разряде (лежит ли число в интервале 32–50)?
Ответ: Минимальное количество вопросов для диапазона 0–15 равно 4, а для диапазона 1–50 равно 6. В программном режиме второй игрок должен предъявить список из 6 вопросов, каждый из которых проверяет конкретный двоичный разряд числа. Желаете ли вы получить математическое обоснование использования двоичного кодирования для решения подобных задач?