Ситуация следующая, 3 работника хотят узнать среднюю заработную плату, каждый из них знает только собственный оклад и не хочет сообщать сумму другому человеку. По сути обмен информацией возможен, но конкретную сумму или информацию с явно выраженным указанием оклада говорить нельзя. Сообщения могут содержать косвенную информацию об окладе, с помощью которой нельзя определить сумму.
Решение
Мы предполагаем, что заработная плата каждого человека находится в числовом диапазоне от 0
до 1 000 000 000
. Рассматривать ситуацию, когда доход одного из участников превышает 1 млрд условных единиц нет смысла, так как он не захочет делиться информацией и вовсе заниматься вычислениями.
Первый из сотрудников должен выбрать произвольное число из указанного интервала и передать эту цифру другому человеку – смыслового содержания сообщение не несёт. Второй человек, который получил сообщение, должен прибавить к числу сумму своей зарплаты и сказать результат третьему. Для последнего человека информация не содержит смысла и является случайной. Третий сотрудник должен добавить к числу свою заработную плату и вернуть значение первому. Первоначальный сотрудник должен вычесть из полученной суммы число, что он наугад взял и передал второму. Результат – это заработная плата 2-х участников, теперь нужно добавить собственный оклад и разделить на 3. Теперь мы узнали средний показатель заработной платы.