Для того чтобы компы поддерживали актуальное время, они могут обращаться к серверам точного времени sntp. к сожалению комп не может просто получить время у сервера,потому что информация по сети передается не мгновенно; пока сообщение с текущим временем дойдет до компа,оно потеряет свою актуальность . протокол взаймодействия клиента выглядит 1)клиент отправляет запрос на сервер и запоминает вреия отправления a. 2)сервер получает запрос в момент времени b и отправляет клиенту сообщение содержащее время b 3)клиент получает ответ на свой запрос в момент вреиени c и запоминает его. теперь клиент, из предположения,что сетевые задержки при передаче сообщений от клиента серверу и от сервера клиенту одинаковы может определить и установить себе точное время используя известные значения a,b,c. ваи предстоит реализовать алогритм с точностью до скенунды определяющий точное время для установки на клиенте по известным a,b и c. при необходимости округлите резултат до целого числа секунд по правилам арифметики. возможно что пока клиент ожидал ответа по клиентскому времени успели наступить новые сутки однако известно,что между отправкой клиентом запроса и получением ответа от сервера прошло менее 24 часов. прграииа получает на вход три времменные метки a,b,c по одной в каждой строке.все временные метки представлены в формате hh: mm: ss, где hh-это часы, mm-это минуты, ss-cеукнды.часы,минуты и секунды записываются ровно двуия цифрами каждоею программа должна вывести одну врмменную метку в формате,описаннои во входных данных-выичсленное точное время для установки на клиенте. в выводе не должно быть пробелов,пустых строк в начале вывода.
274
354
Ответы на вопрос:
Если на прохождение запроса нужно время t секунд. то с момента отправки запроса клиентом до получения ответа сервера пройдёт время 2t. зная, что запрос был отправлен в момент времени a и получен ответ в момент времени c, можно вычислить t. учитывая, что t секунд назад было время b, то сейчас время b + t. def timestamp_to_time(timestamp): seconds = 0 for token in timestamp.split(": "): seconds = seconds * 60 + int(token) return seconds def time_to_timestamp(time): seconds = time % 60 time //= 60 minutes = time % 60 time //= 60 hours = time % 24 return "{: 02d}: {: 02d}: {: 02d}".format(hours, minutes, seconds) a = timestamp_to_time( b = timestamp_to_time( c = timestamp_to_time( if c < a: c += timestamp_to_time("24: 00: 00") t = (c - a + 1) // 2 current_time = b + t print(time_to_timestamp(current_time)) пример ввода: 23: 59: 59 01: 00: 51 00: 00: 20 пример вывода: 01: 01: 02
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
пдсеьаомео06.07.2020 02:05
-
dinafait200120.04.2021 08:11
-
LeBleque14.03.2021 04:11
-
dssh7010.02.2023 06:15
-
demonsmurnov7514.06.2020 04:53
-
луч1615.05.2020 17:19
-
вася78310.10.2022 06:27
-
limka518014.10.2020 11:26
-
Руфина15707.06.2023 14:25
-
asalymbekov13.05.2021 19:59
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.