Сложная задача про длину кабеля

Сложная задача про длину кабеля

Потребуется логика и воображение

Воскресенье, утро, Стамбул. Сетевой инженер из России пьёт кофе в кафе с видом на Босфор. Вдруг звонок: 

— Васян, выручай, нужно срочно продиагностировать кусок сети, без тебя никак.

— В чём дело? 

— У нас два компьютера соединены через два шлюза. Нам нужно понять скорость сигнала между этими шлюзами. 

— В смысле? Ну зайдите на шлюз и сделайте пинг. Он вам скажет точное время прохождения сигнала. 

— Мы не можем, у нас нет пароля, а у кого он — никто не знает. 

— Ладно, что вы ещё знаете? 

Дальше он узнал вот что: 

  • Есть два компьютера.
  • Между ними два шлюза: красный и синий.
  • Между двумя шлюзами ещё какие-то устройства: серверы, передатчики, шлюзы и т. д. — мы не знаем какие. Они замедляют сигнал. 
  • Мы не знаем точный пинг (то есть время прохождения сигнала) между всеми этими точками.
  • Но если прогнать пинг от первого компьютера до красного шлюза и сравнить с пингом от красного шлюза до второго компьютера, то разница в пинге будет 25 миллисекунд. 
  • А если сравнить пинг до и от синего шлюза, то разница будет уже 35 миллисекунд.
  • Скорость пинга одинаковая в обе стороны всё время.

Задача — узнать пинг (то есть скорость прохождения сигнала) между красным и синим шлюзом. Предположительно там стоит какое-то оборудование, которое замедляет наш сигнал слишком сильно, и в зависимости от показателей замедлений нужно дать кому-то по шапке. 

Сложная задача про длину кабеля

Василий поспорил, что сможет решить эту задачу, даже не открывая компьютера. В выпадайке — как ему это удалось. 

Нарисуем схематично наше соединение с двумя шлюзами, красным и синим. Условно будем считать, что длина каждого отрезка соответствует скорости обработки сигнала:

Сложная задача про длину кабеля

Теперь обозначим за x, y и z три отрезка сигнала, которые нам неизвестны, и подпишем разницу в пинге — это то, что мы знаем:

Сложная задача про длину кабеля

По рисунку можно составить два уравнения:

x + y − z = 25 ← когда пингуем красный шлюз

y + z − x = 35 ← когда пингуем синий шлюз

Сложим эти уравнений друг с другом:

x + y − z + y + z − x = 25 + 35

Сгруппируем неизвестные друг с другом:

(x − x) + (y + y) + (z − z) = 60

2y = 60 → y = 30

Получается, пинг между шлюзами, которое мы обозначили за y, равен 30 миллисекунд. 

Текст:

Михаил Полянин

Редактор:

Максим Ильяхов

Художник:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Соцсети:

Алина Грызлова

Читаете «Код»? Зарабатывайте на коде
Сфера ИТ и разработки постоянно растёт и требует новых кадров. Компании готовы щедро платить даже начинающим разработчикам, а опытных вообще отрывают с руками. Обучиться на разработчика можно в «Яндекс Практикуме».
Начать карьеру
Читаете «Код»? Зарабатывайте на коде Читаете «Код»? Зарабатывайте на коде Читаете «Код»? Зарабатывайте на коде Читаете «Код»? Зарабатывайте на коде
Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
Нестандартная задача про вероятность и шары

Очередная задача из собеседований.

medium
Задача про выгодную покупку
Задача про выгодную покупку

Быть умным — выгодно.

easy
Задача про охрану периметра

Решаем тремя способами: как математик, инженер и программист.

easy
Сложная задачка: отчёт о работе

Как найти решение, если вы уже знаете ответ.

hard
Итого — 9 поездок, в два раза меньше, чем первым способом! Граждане, берегите лифт!
Логическая задача про лифт

Сколько нужно выдержать поездок, чтобы попасть на свой этаж?

easy
Задача про математику и секс
Задача про математику и гендерное равенство

Как логика, математика и статистика приводят к созданию новой крепкой семьи.

easy
Задача про бейсбольную биту

Эта задача решается не так просто, как кажется.

easy
Задачка: узнать среднюю зарплату в строгой компании
Задачка: узнать среднюю зарплату в строгой компании

Непростая задачка против звериного оскала капитализма.

easy
Находчивый инженер в кафе

Как логика побеждает разгильдяйство.

medium
Задача про полторы белки

Не спрашивайте, просто попробуйте решить.

easy
easy