GitHub
Задачи с собеседований: зарплата
Три работника хотят вычислить свою среднюю зарплату при условии, что каждый знает свою зарплату, но не может сообщить ее другому напрямую. Обмен информации между людьми возможен, но передаваемые друг другу сообщения не должны содержать какую-либо конкретную информацию об уровне зарплат. Как это сделать?
Решение
Предположим, что зарплата каждого от 0 до 1 000 000 000 (потому что если у кого-то из трех сотрудников зарплата будет больше миллиарда условных единиц, то он вряд ли станет заниматься такой ерундой).
Тогда пусть первый работник возьмет любое случайное число из заданного интервала и скажет его второму — данное сообщение не содержательно. Второй добавит к этому числу свою зарплату и передаст это сообщение третьему, эта информация также является просто какой-то случайной величиной. И наконец третий работник прибавит к полученному числу свою зарплату и передаст первому. Первый вычтет из этой суммы число, переданное им второму, и разделит разность на количество участников, то есть на 3. Вот мы и получили искомую среднюю зарплату!
-
Новости4 недели назадВидео и подкасты о мобильной разработке 2026.21
-
Видео и подкасты для разработчиков4 недели назадN техник, которые улучшат работу видеоленты
-
Магазины приложений4 недели назадApple заявляет, что иск Epic не должен менять правила App Store для всех разработчиков
-
Новости3 недели назадВидео и подкасты о мобильной разработке 2026.22
