GitHub
Задачи с собеседований: зарплата
Три работника хотят вычислить свою среднюю зарплату при условии, что каждый знает свою зарплату, но не может сообщить ее другому напрямую. Обмен информации между людьми возможен, но передаваемые друг другу сообщения не должны содержать какую-либо конкретную информацию об уровне зарплат. Как это сделать?
Решение
Предположим, что зарплата каждого от 0 до 1 000 000 000 (потому что если у кого-то из трех сотрудников зарплата будет больше миллиарда условных единиц, то он вряд ли станет заниматься такой ерундой).
Тогда пусть первый работник возьмет любое случайное число из заданного интервала и скажет его второму — данное сообщение не содержательно. Второй добавит к этому числу свою зарплату и передаст это сообщение третьему, эта информация также является просто какой-то случайной величиной. И наконец третий работник прибавит к полученному числу свою зарплату и передаст первому. Первый вычтет из этой суммы число, переданное им второму, и разделит разность на количество участников, то есть на 3. Вот мы и получили искомую среднюю зарплату!
-
Новости4 недели назад
Видеозвонки с Лили, Приключения и пианино — обновления Duolingo
-
Новости3 недели назад
Видео и подкасты о мобильной разработке 2024.39
-
Видео и подкасты для разработчиков2 недели назад
Lua – идеальный встраиваемый язык
-
Новости3 недели назад
Poolside, занимающийся ИИ-программированием, привлек $500 млн