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