Идеи реализации

Поскольку множество чисел от 0 до 99 конечно, потребуется не более ста вопросов, чтобы отгадать задуманное число. Мы имеем в виду вопросы вида «Загаданное число — ноль?», «Загаданное число — один?» и так далее. Отрицательный ответ на каждый из таких вопросов сужает круг поиска на одно число. Программа, которая действовала бы именно так, не впечатляет своей проницательностью. Число угадывалось бы в среднем после 50 вопросов.

На наше счастье множество чисел от 0 до 99 упорядочено, а значит, можно задавать такие вопросы, которые сужают круг поиска значительно сильнее. Но насколько? Если задавать только простые вопросы, то есть такие, на которые можно ответить лишь «да» или «нет», можно добиться того, что количество кандидатур с каждым ответом будет сокращаться в два раза. При угадывании целого числа, заключённого между a и b при помощи всего лишь одного вопроса выяснить, на какой половине промежутка — первой или второй — находится число. Если на первой, дальнейший поиск будет осуществляться между числами a и a + b 2 , а если на второй — между a + b 2 и b.

Информатика-54© А. Н. Швец