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

Журнал «Код»Журнал «Код»

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

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

В одной компании жёсткие правила: нельзя никому говорить размер своей зарплаты, даже коллегам. Если рассказал — сразу увольняют, это прописано в договоре. Но как тогда понять, что тебе платят справедливо и сопоставимо с другими?

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

? Задача: узнать среднюю зарплату по отделу, не нарушая условия договора.

Решение

Раз нельзя называть точную зарплату, можно поступить так:

  1. Первый сотрудник берёт любое случайное число, которое больше его зарплаты. В принципе можно взять любое случайное число, но так сотрудник перестраховывается от называния приблизительной суммы на следующем шаге.
  2. Прибавляет его к своей зарплате и получившуюся сумму называет второму сотруднику. Так он выполняет условия неразглашения — не называет точную сумму своей зарплаты.
  3. Второй сотрудник берёт это число, в уме прибавляет к нему размер своей зарплаты и называет результат третьему сотруднику. Он тоже действует в рамках закона и не озвучивает свой доход.
  4. Третий делает то же самое и говорит результат четвёртому. Так все по цепочке называют друг другу числа, пока не дойдут до последнего сотрудника.
  5. Последний сотрудник берёт общую сумму, прибавляет свою зарплату и говорит результат первому.
  6. Первый сотрудник вычитает из полученного результата своё случайное число, которое он придумал на первом шаге, и получает точную сумму всех зарплат в отделе. При этом он не знает, кто сколько получает — он видит только общий результат.
  7. Он берёт этот результат, делит на количество сотрудников и получает среднюю зарплату в отделе. Теперь каждый может её сравнить со своей и решить — идти к начальству или нет.

Но это не единственное решение. Попробуйте найти второе и напишите в комментариях.

09:00
318