Ответы на вопрос » компьютеры, ноутбуки и телефоны » Как написать программу для задачки про студента и преподавателя в питоне?
                                 
Задавайте вопросы и получайте ответы от участников сайта и специалистов своего дела.
Отвечайте на вопросы и помогайте людям узнать верный ответ на поставленный вопрос.
Начните зарабатывать $ на сайте. Задавайте вопросы и отвечайте на них.
Закрыть меню
Вопросы без Ответа Радио


Как написать программу для задачки про студента и преподавателя в питоне?


опубликовал 18-08-2023, 13:36
Как написать программу для задачки про студента и преподавателя в питоне?


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

  1. Гена
    Gena 18 августа 2023 16:05

    отзыв нравится 0 отзыв не нравится

    Для решения этой задачи мы можем использовать бинарный поиск. Начнем с броска шарика с середины дома. Если шарик разбивается, мы продолжаем поиск в нижней половине дома, иначе идем в верхнюю половину дома. Каждый следующий бросок будет осуществляться на середине оставшегося диапазона этажей. Процесс повторяется до тех пор, пока не будет найден искомый этаж или пока не превысит ограничение в 15 бросков.

    Вот пример программы, реализующей эту стратегию:

    def find_critical_floor():
        bottom_floor = 1
        top_floor = 36
        attempts = 0
        
        while bottom_floor <= top_floor and attempts < 15:
            middle_floor = (bottom_floor + top_floor) // 2
    print(f"Бросок с этажа")
            response = input("Разбился шарик? (Да/Нет): ")
            if response.lower() == "да":
                top_floor = middle_floor - 1
            else:
                bottom_floor = middle_floor + 1
            attempts += 1
        
        if bottom_floor > top_floor:
            return top_floor
        else:
            return bottom_floor

    critical_floor = find_critical_floor()
    print(f"Искомый этаж: {critical_floor}")


    В этом примере кода функция `find_critical_floor()` реализует алгоритм поиска искомого этажа. Мы поддерживаем границы `bottom_floor` и `top_floor` для оставшегося диапазона этажей, и количество попыток `attempts` для ограничения числа бросков в 15. В каждой итерации цикла мы вычисляем середину диапазона, бросаем шарик с этого этажа и получаем ответ от преподавателя. Затем мы обновляем границы диапазона в зависимости от ответа. Если диапазон сужается до одного этажа, мы возвращаем его как искомый этаж.

    Пожалуйста, обратите внимание на то, что в этом примере кода ввод ответа от преподавателя реализован через функцию `input()`, где ответы принимаются в виде "Да" или "Нет" (без учета регистра). Вы можете использовать другой способ ввода ответов от преподавателя, если требуется.

    Итоговый ответ, искомый этаж, выводится после завершения игры.

    Ссылка на ответ | Все вопросы
    18
    08
Добавить ответ
Ваше Имя:
Ваш E-Mail:
Введите два слова, показанных на изображении: *




Показать все вопросы без ответов >>