百科问答小站 logo
百科问答小站 font logo



五个同事决定计算他们的平均工资,在大家互相不告诉薪水的情况下,如何才能做到这一点? 第1页

  

user avatar   mei-teng-tian 网友的相关建议: 
      

哈哈这事儿我刚入职时干过。找个计算器,叫第一个人输入一个巨大的不规则的数,然后把自己的收入加上去,之后依次传给其他人,每人都把自己的收入加上之前的数。最后传回第一个人。

第一个人再把最后的总和减去Ta选中的那个不规则数,然后除以人数,即可得到大家的平均。

我的老板听说以后警告我们说:这么做是fireable offence,叫我们以后别再这么干了。


user avatar   zhang-xiao-yun-43-14 网友的相关建议: 
      

这个问题很简单……

假设五个同事分别为ABCDE,他们的工资分别为abcde

则A随便想一个数a1,他把a1告诉B

B也随便想一个数b1,把a1+b1的结果告诉C

C也随便想一个数c1,把a1+b1+c1的结果告诉D

D也随便想一个数d1,把a1+b1+c1+d1的结果告诉E

E也随便想一个数e1,带上自己的工资e,把a1+b1+c1+d1+e1+e的结果告诉D

D把自己的工资d加上去,把自己之前加上去的d1去掉,把a1+b1+c1+d+e1+e的结果告诉C

C把自己的工资c加上去,把自己之前加上去的c1减掉,把a1+b1+c+d+e1+e的结果告诉B

B把自己的工资b加上去,把自己之前加上去的b1减掉,把a1+b+c+d+e1+e的结果告诉A

A把自己的工资a加上去,把自己之前加的a1去掉,把a+b+c+d+e1+e的结果告诉E

E把自己的e1减掉,除以5,得到最终平均数。

这个做法的好处在于:

  1. 显然,全程中每个人都没有机会知道任何一个人的具体工资到底是多少。
  2. 哪怕数据传输的过程中被其他人截获,也没有机会用自己手中的随机数和工资反推其他人工资(而其他答案中,比如第一个人随便想一个数,然后加上自己工资传给第二个人,然后每个人加上自己工资往下传,那么极端情况下,第一个人是有机会截获其他所有人传递的中间数据,根据自己手中的起始数推出所有其他人工资的)。这个算法唯一的破绽在于,只有所有人一起联手,交出自己手中的随机数,才能把所有人的工资推出来。
  3. 这个算法对任意大于等于2人的方式都成立。扩展性很好。
  4. 数据传输次数为2n-1(n表示人数),已经足够简略了。再少就不能保证安全了。

user avatar   xu-lin-xiao-70 网友的相关建议: 
      

每个人把自己的工资随意拆成四个数的和,分别把四个数字告诉自己以外的四个人; 每个人手里收到四个数字,加起来,报出; 五个人的数字相加,即可得到五个人的总收入,除以5得到平均工资。

记得这是一个挺古老的解决方案?

———————————————————————————————————————————

5/23 19:40千赞留念。没想到昨天吃晚饭时随手回答的一个问题得到了这么多的赞同

有评论说我说的不够清楚,那可以这么再严格地叙述一下:

设这五个人的工资分别为 ,第 个人告诉第 个人的数字为 ,那么有 ;

现在得到一个矩阵:

第二步就相当于计算每一列的和,然后第三步把它们加起来再除以五。总体上就是说矩阵所有元素的和等于各行和之和,也等于各列和之和。

总结一下评论区一些讨论:

  1. 如果考虑剩余四个人抱团的情况,四个人可以采用同样的办法,在互相不告诉薪水的情况下得知四人的总薪水,从而得知第五人的薪水。
  2. 每个人把工资分成五份,自己留一个数字只能让其余四个人不能直接把手里的关于他的数字相加得到他的薪水,对防御四人抱团的情况没有帮助。
  3. 拆分的数字可以取负数,从而让其余人失去了薪水的一个下界的信息。

这个方法不是我原创的,应该是近几年在某一本书上看的,但是翻了翻没找到;也有可能是数学建模或者密码学课上老师提到过。

———————————————————————————————————————————

5/24 12:40 两千赞留念。因为这个回答关注我的各位……可能会比较失望?我在知乎上主要回答魔方话题下的问题,以及给大佬们点赞……


user avatar   wang-xi-65-12 网友的相关建议: 
      

在我看来,特斯拉想石锤掉张女士太容易了好吗?

现在事情这么大了,都惊动到特粉的精神领袖马斯克了。

行车记录不是特斯拉后台都有吗?

不是只有特斯拉能读取(破解)吗?

直接倒出来事发前后10分钟的记录公布大众不就直接锤死了吗?

还轮的上张女士跳脚吗?

至于隐私啥的,涉及面这么广已经不存在隐私问题了,反正特斯拉也不尊重车主,就直接公布呗?

多少数据啊,拘留5天都整理不出来,都不如我们新招的实习生呢。


那么问题来了,为啥不锤呢,人道主义吗?


还有人在那说,车主不给车就鉴定不了。

行,我认为你说的是对的,

那特斯拉给一份精选的数据是咋回事?

不用怕网友看不懂,我看不懂,我后面有千千万万网友会翻译成我能看懂的Excel。

你倒是公布啊。




  

相关话题

  大家有人知道这个怎么解吗? 
  四个人中谁是鬼? 
  如何将楼道电灯双控开关 化成 逻辑电路(门电路)? 
  HTTPS体系中若攻击者将自己公钥上传CA得到签名,并将两者一起用于篡改证书的中间人攻击会怎样? 
  推理小说中,常见的叙述性诡计有哪几种? 
  为什么中国没有自然产生与“逻辑”词义对应的本土词汇?是东西方思维方式差异导致的么? 
  a=b则b=a,这是真理吗?有没有例外? 
  如果东野圭吾这类的人犯罪,他们能完成完美犯罪吗? 
  《无证之罪》与《白夜追凶》哪个好看? 
  为什么计算机科学如密码学喜欢用 Alice 和 Bob 举栗子? 

前一个讨论
世界所面对的百年未有之大变局是什么?
下一个讨论
英语中有哪些单词都认识却无法翻译的句子?





© 2024-05-21 - tinynew.org. All Rights Reserved.
© 2024-05-21 - tinynew.org. 保留所有权利