Вопрос задан 12.06.2026 в 06:14. Предмет Информатика. Спрашивает Костерин Евгений.

С помощью Python напишите программу, с помощью которой компьютер будет угадывать загаданное число пользователем.

Перейти к ответам

Ответы на вопрос

Отвечает Шумилов Егор.

Можно написать программу, в которой компьютер будет не случайно перебирать числа, а угадывать их методом бинарного поиска. Пользователь загадывает число, например от 1 до 100, а компьютер каждый раз предлагает середину возможного диапазона. Пользователь отвечает, больше загаданное число, меньше или угадано.

Пример программы на Python:

Python
print("Загадайте число от 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("Похоже, ответы были противоречивыми.")

Как работает программа:

Сначала задаётся диапазон чисел:

Python
low = 1
high = 100

Это значит, что компьютер знает: число находится где-то между 1 и 100.

Дальше компьютер берёт середину диапазона:

Python
guess = (low + high) // 2

Например, если диапазон от 1 до 100, первая попытка будет:

Python
50

Если пользователь отвечает >, значит загаданное число больше 50. Тогда нижняя граница меняется:

Python
low = guess + 1

Если пользователь отвечает <, значит число меньше 50. Тогда меняется верхняя граница:

Python
high = guess - 1

Если пользователь отвечает =, компьютер понимает, что число угадано, и завершает программу:

Python
if answer == "=":
print("Я угадал!")
break

Такой способ намного эффективнее, чем простой перебор. Например, число от 1 до 100 компьютер сможет угадать максимум примерно за 7 попыток, потому что после каждого ответа диапазон уменьшается почти в два раза.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос