应届生求职网小程序
楼主: candygreen
打印 上一主题 下一主题

[笔试] 华硕笔试智力题 ZZ

[复制链接]

主题

好友

1万

积分

世界首富

跳转到指定楼层
1
发表于 2008-8-21 11:41 |显示全部楼层 |倒序浏览

  有5名囚犯,编号1~5,让他们按照编号到装有100颗豆子的袋子里摸豆子,每人都不知道别人摸的数目,但自己摸的时候知道袋子里剩下多少,摸得最多和最少的会死,跟别人一样多的两个都会死,每个人都保证自己不死的前提下让别人尽量多的人去死,问编号多少的人存活概率最大?

 

  显然,为了避免成为受害者,对第n个人(n>=3)而言,他的最佳策略就是取前面所有人取的豆数的平均值。先来看看n=3,即第3个人的情况。在他之前,1号和2号已经摸过了,分别记为A和B,以下用逻辑表达式的形式来描述3号所取的豆数C。 C = (A + B) / 2 //3号的初始策略,取前两个人的平均值 
if (A + B + C) > 100 //1号和2号加起来取走了超过67个
{
C = 100 - (A + B + 1 + 1)
if C == 1
return 0 //1号和2号共取走了97个,3、4、5号认命
else
return 1 //3号安全。C必定小于A、B中的一个,并且必定大于D、E
}
else
{
if A<> B
{
if C == int(C) //整除
{
return 1 //3号安全。C必定位于A、B二者之间
}
else
{
C = int(C)
if abs(A - B) == 1 //1号、2号所取的数只相差1个
return 2 //此时C = min(A,B),因此肯定已经不可能是最多的。后面的4号、5号理论
上还有可能犯错误,3号还存在一线存活的机会
else
return 1 //3号安全。C必定位于A、B二者之间
}
}
else
{
return 2 //此时C =A = B。后面的4号、5号理论上还有可能犯错误,3号还存在一线存活的机会
}
}
  上面这段程序完全可以扩展到n>3的情况,最后我们会发现虽然理论上3号比较有利,实际上1号根本不会给后面的人设计他的机会。所以唯一合理的结果应该是A = B = C = D= E = 20,也就是全都死翘翘。

  当然,以上推理有一个重要的假定,即“很聪明”的定义如下:“如果无论如何我都会出局,则多一个垫背的比少一个好。”

 

+10
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册 QQ登录

本版积分规则

关闭

站长推荐上一条 /1 下一条

应届生微信小程序|应届生求职网YingJieSheng.COM ( 沪ICP备12015550号-13 )

GMT+8, 2024-11-22 16:34

Powered by Discuz!

© 2001-2012 Comsenz Inc.

快速回复 返回顶部 返回列表