Напишите программу, которая отгадывает загаданное целое число от 1 до 1000 (пользователь или тестирующая система загадывает число в уме и не сообщает программе). Угадать число нужно не более чем за 10 попыток. На каждую попытку пользователь отвечает, что загаданное число больше названного (вводит символ “>”), меньше названного (“<”) или угадано правильно (“=”).
Используйте бинарный поиск. Ваша программа должна каждый раз называть число, находящееся посередине исследуемого диапазона — в результате станет ясно, в какой половине диапазона находится искомое число.
Например, для диапазона от 1 до 8 (а не до 1000) это могло бы выглядеть так (загадано число 5):
4 (программа пробует угадать, называя число из середины интервала от 1 до 8)
> (пользователь отвечает, что загаданное число больше введенного; теперь программа ищет в интервале от 5 до 8)
6
<
5
=
напиши код на python
Информатика 10 класс Алгоритмы и структуры данных отгадывание числа бинарный поиск Новый
Давайте разберем, как можно написать программу, которая будет угадывать загаданное число от 1 до 1000, используя метод бинарного поиска. Бинарный поиск — это алгоритм, который позволяет сократить диапазон поиска вдвое с каждой попыткой, что делает его очень эффективным для задачи угадывания числа.
Программа будет работать следующим образом:
middle = (min + max) // 2
.min = middle + 1
.max = middle - 1
.Теперь давайте посмотрим, как это будет выглядеть в коде на Python:
def guess_number():
min = 1
max = 1000
attempts = 0
while attempts < 10:
middle = (min + max) // 2
print(f"Я думаю, что это {middle}. Это больше (>), меньше (<) или равно (=) загаданному числу?")
response = input().strip()
if response == "=":
print("Ура! Я угадал число!")
return
elif response == ">":
min = middle + 1
elif response == "<":
max = middle - 1
else:
print("Пожалуйста, введите корректный ответ: '>', '<', или '='.")
attempts += 1
print("К сожалению, я не смог угадать число за 10 попыток.")
guess_number()
Этот код запрашивает у пользователя ввод и использует его для корректировки диапазона поиска. Таким образом, программа может эффективно угадать число за 10 попыток или меньше.