深信服面试智力题-------三人求平均工资

通过巧妙的设计,员工可以在不泄露自己工资的情况下,共同计算出团队的平均工资。此方案利用了加法的结合律和随机数的特性,确保了数据的安全性和隐私保护。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述:  一家公司三个员工,求三个员工平均工资,每个人薪资不一样(要求:每个人要保证其他人不能知道自
己的工资),请你设计一个解决方案?

想了半天没想出来,面试官还提示员工之间消息可以单播和多播传递。

设A,B,C三个人工资分别为a,b,c
解决方案:

  1. 员工A将其工资加上一个随机数x将其告知B,则B得到的数据为a+x;
  2. 员工B将其工资加上一个随机数y并加上从A收到的数据发送给C,则C得到数据为a+x+b+y;
  3. 员工C将其工资加上一个随机数z并加上从B收到的数据发送给A,则A得到的数据为a+x+b+y+c+z;
  4. 员工A将从C得到的数据减x发送给B,则B得到的数据为a+b+y+c+z;
  5. 员工B将从A得到的数据减y发送给C,则C得到的数据为a+b+c+z;
  6. 员工C将从B得到的数据减z,则得到数据为a+b+c;
  7. 将其(a+b+c)/3得到平均工资。

这样就每个人都不知道其他人工资的情况下,计算出平均工资。有点像数字加密方面,这题实际不难,像个脑筋急转弯,但是没有思路还是有点难想到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值