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