Делим её пополам на 2 подмножества и задаём (максимум 3 раза) вопрос: "Находится ли кольцо в подмножестве замков от A до N/2".
Получили ответы "да, нет, да". Что дальше?
Когда их останется 2, то можно однозначно выяснить в каком из них находится кольцо
Каким образом?
Вы правы, камень может чередовать ответы "да", "нет", "да". Давайте посмотрим на варианты. Итак, мы разделили все подмножество на 2 группы и получили группу А и группу B.
Мы 2 раза задаем вопрос "Кольцо в группе А?". Если камень даёт 2 одинаковых ответа, тогда всё очевидно. Если он начинает чередовать Да/Нет, тогда 3-й вопрос мы задаём про группу B. И тут возникают 2 варианта.
Вариант 1 (3-й ответ камня НЕ совпадает со 2-м):Код:
Группа А Группа B
шаг 1 Да
шаг 2 Нет
шаг 3 Да
Вывод: однозначно в B
или обратная ситуация
Код:
Группа А Группа B
шаг 1 Нет
шаг 2 Да
шаг 3 Нет
Вывод: однозначно в A
Вариант 2 (3-й ответ камня совпадает со 2-м):Код:
Группа А Группа B
шаг 1 Да
шаг 2 Нет
шаг 3 Нет
Вывод: невозможно определить
или обратная ситуация
Код:
Группа А Группа B
шаг 1 Нет
шаг 2 Да
шаг 3 Да
Вывод: невозможно определить
Если мы получаем вариант 2, который не даёт однозначного определения нужной группы, тогда можно пойти другим путём и переформулировать вопрос так, чтобы любой ответ на него был заведомо ложный.
Например так: "Кольцо одновременно и в группе А и в группе B?".
Любой ответ на этот вопрос будет ложным и следующий вопрос определит нужную группу.
Конечно, это некая уловка и она возможна только в том случае если условие задачи допускает такие вопросы.
Второй Ваш вопрос не совсем понял, но если Вы про сам процесс деления групп, то выглядит он примерно так:
Код:
шаг 1: (Замок1 Замок2 Замок3 Замок4 Замок5) (Замок6 Замок7 Замок8 Замок9 Замок10)
| / \
| / \
шаг 2: (Замок1 Замок2) (Замок3 Замок4 Замок5)
| / \
| / \
шаг 3: (Замок3) (Замок4 Замок5)
| / \
| / \
шаг 4: (Замок4) (Замок5)