
Как угадать число от 0 до 100 или математический фокус
Интересный математический фокус, который только на первый взгляд может показаться сложным, но на самом деле это не так!
Условие:
- Необходимо загадать любое число от 0 до 100.
- Перед вами появляется целое число, выданное программой и соответствующее диапазону.
- Вам необходимо указать – предложенное число больше, меньше или равно тому, что вы загадали.
- Если программа не угадала – она продолжит предлагать числа.
- Менее чем за 7 попыток искомое число программа все же сгенерирует.
Решение.
Для получения ответа достаточно просто воспользоваться алгоритмом бинарного поиска. То есть, чтобы найти искомое число, следует каждый раз осуществлять деление оставшегося диапазона на 2. Тем самым мы сокращаем объем поиска при каждом проведении действия. Вот и все – правильный ответ всегда будет найден.
Например, первым программа предложит число 50, мы выбираем один из возможных диапазонов, больше 50 – 51-100 или меньше 0-49. Если вариант меньше – следующим числом скорее всего будет 25. Действия будут повторяться, и искомое число наконец найдется.
Согласно законам математики, при делении числа 100 на 2 в течение 7 раз – результат будет порядка 1.
Но так как 2 в седьмой степени – это 128, диапазон может быть увеличен и иметь вид от 1 до 128 или от 0 до 127. А при увеличении возможных попыток, например, до 8, диапазон также может вырасти до 256 и так далее.
Больше интересных новостей



