С помощью Python напишите программу, с помощью которой компьютер будет угадывать загаданное число пользователем.
Ответы на вопрос
Можно написать программу, в которой компьютер будет не случайно перебирать числа, а угадывать их методом бинарного поиска. Пользователь загадывает число, например от 1 до 100, а компьютер каждый раз предлагает середину возможного диапазона. Пользователь отвечает, больше загаданное число, меньше или угадано.
Пример программы на Python:
Pythonprint("Загадайте число от 1 до 100.")
print("Я попробую его угадать.")
print("Отвечайте:")
print("'>' — если ваше число больше")
print("'<' — если ваше число меньше")
print("'=' — если я угадал")
low = 1
high = 100
attempts = 0
while low <= high:
guess = (low + high) // 2
attempts += 1
print("Ваше число:", guess, "?")
answer = input("Введите >, < или =: ")
if answer == "=":
print("Я угадал!")
print("Количество попыток:", attempts)
break
elif answer == ">":
low = guess + 1
elif answer == "<":
high = guess - 1
else:
print("Нужно ввести только >, < или =.")
else:
print("Похоже, ответы были противоречивыми.")
Как работает программа:
Сначала задаётся диапазон чисел:
Pythonlow = 1
high = 100
Это значит, что компьютер знает: число находится где-то между 1 и 100.
Дальше компьютер берёт середину диапазона:
Pythonguess = (low + high) // 2
Например, если диапазон от 1 до 100, первая попытка будет:
Python50
Если пользователь отвечает >, значит загаданное число больше 50. Тогда нижняя граница меняется:
Pythonlow = guess + 1
Если пользователь отвечает <, значит число меньше 50. Тогда меняется верхняя граница:
Pythonhigh = guess - 1
Если пользователь отвечает =, компьютер понимает, что число угадано, и завершает программу:
Pythonif answer == "=":
print("Я угадал!")
break
Такой способ намного эффективнее, чем простой перебор. Например, число от 1 до 100 компьютер сможет угадать максимум примерно за 7 попыток, потому что после каждого ответа диапазон уменьшается почти в два раза.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

