Один загадывает число от 1 до 100, другой угадывает. После каждой попытки говорят только «больше» или «меньше».
Значит, есть способ угадывать умнее. Какой — и насколько он быстрее?
Гипотеза
Если каждый раз называть число из середины того, что осталось, и отбрасывать сразу половину вариантов, то даже для миллиона чисел хватит примерно 20 вопросов.
Цель
Наглядно показать и измерить, почему деление пополам угадывает число намного быстрее, чем перебор подряд.
Называем 1, 2, 3, 4… пока не угадаем.
Называем середину. Половина чисел сразу отпадает. В оставшейся — снова середину.
Важен не размер диапазона, а сколько раз его можно поделить пополам:
1000 → 500 → 250 → 125 → 63 → 32 → 16 → 8 → 4 → 2 → 1
Это всего ~10 шагов. Число делений пополам называется логарифм по основанию 2 (log₂N).
Отмечаю карточки, где есть моё число — компьютер его называет.
Секрет: он складывает первые числа карточек — 1, 2, 4, 8, 16, 32 (степени двойки).
6 карточек = 6 вопросов «да/нет», а 2⁶ = 64. Шестью вопросами различаем 64 числа.

Сделана страница, которая работает в браузере без интернета. В ней три части:

5000 случайных чисел на каждый диапазон. Столбец «пополам, худший» точно совпал с log₂N.

Диапазон вырос в 100 000 раз (с 10 до миллиона).
Гипотеза подтвердилась: деление пополам угадывает число за считанные вопросы.