题目:八位Java后端开发工程师聚在一起喝酒,他们都想知道行业平均工资,但都不想透露自己的工资。如何才能在每个人都不知道其他人工资的情况下计算行业平均工资? 题解1:随机数加密法 每人先想一个随机数(设为r1,r2,,,r8)),自己记好,不公开。第 1 人把 “自己工资 s1+r1” 告诉第 2 人;第 2 人计算 “s2+r2 + 第1人传来的数)”,再传给第 3 人;依此类推,最后第 8 人算出总和 (S = s1+s2+,,,s8+r1+r2+,,,,r8),回传给第 1 人。第 1 人减去自己的随机数 r1,传给第 2 人;第 2 人再减r2,依次传递,直到第 8 人减 r8,最终得到真实工资总和 s1+s2+,,,s8,除以 8 就是平均值。 题解2: 大家把自己的工资拆成8个碎片(要不一样的数字)其他7人各拿一份,自己留一份。然后大家把手里所有碎片加起来报个数,最后把所有人报的数加一块儿,除以8就是平均工资 题解3: 每个人将工资写在纸片上,然后匿名混在一起(不知道哪张纸片是谁的