智力题心得

博弈

  1. 16个硬币,A和B轮流拿走一些,每次拿走的个数只能是1,2,4中的一个数,谁最后拿硬币谁输。问:A或B有无策略保证自己赢?假设都很聪明。
    解:设 f ( n ) f(n) f(n) 表示剩余 n n n 个硬币时先拿者的输赢,类型为布尔值,则 f ( 0 ) = t r u e , f ( 1 ) = f a l s e f(0)=true, f(1)=false f(0)=true,f(1)=false f ( n ) = ! ( f ( n − 1 ) & & f ( n − 2 ) & & f ( n − 4 ) ) f(n)=!(f(n-1) \&\& f(n-2)\&\&f(n-4)) f(n)=!(f(n1)&&f(n2)&&f(n4)),这样就可以用动态规划来求解了.
  2. 假设排列着100个乒乓球,由两个人轮流拿球装入口袋,能拿到第100个乒乓球的人为胜利者。条件是:每次拿球者至少要拿1个,但最多不能超过5个,问:如果你是最先拿球的人,你该拿几个?以后怎么拿就能保证你能得到第100个乒乓球?
    解: f ( 1 ) = f ( 2 ) = f ( 3 ) = f ( 4 ) = f ( 5 ) = t r u e f(1)=f(2)=f(3)=f(4)=f(5)=true f(1)=f(2)=f(3)=f(4)=f(5)=true f ( n ) = ! ( f ( n − 1 ) & & f ( n − 2 ) & & f ( n − 3 ) & & f ( n − 4 ) & & f ( n − 5 ) ) , n > 5 f(n)=!(f(n-1)\&\&f(n-2)\&\&f(n-3)\&\&f(n-4)\&\&f(n-5)),n > 5 f(n)=!(f(n1)&&f(n2)&&f(n3)&&f(n4)&&f(n5)),n>5.
  3. 传说,从前有五个海盗抢得了100枚金币.他们通过了一个如何确定选用谁的分配方案的安排.即:
    1.抽签决定各人的号码(1,2,3,4,5);
    2.先由1号提出分配方案,然后5个人表决.当且仅当超过半数人同意时,方案才算被通过,否则他将被扔入大海喂鲨鱼;
    3.当1号死后,再由2号提方案,4个人表决,当且仅当超过半数同意时,方案才算通过,否则2号同样将被扔入大海喂鲨鱼;
    4.往下依次类推……
    根据上面的这个故事,现在提出如下的一个问题.即:
    我们假定每个海盗都是很聪明的人,并且都能够很理智地判断自己的得失,从而做出最佳的选择,那么第一个海盗应当提出怎样的分配方案才能够使自己不被扔入大海喂鲨鱼,而且收益还能达到最大化呢?
    解:从简单的情况开始:只有一个海盗时,收益为100, f ( 1 ) = 100 f(1)=100 f(1)=100;两个海盗时,第一个海盗无论提什么方案,第二个海盗都不答应,因此 f ( 2 ) = 0 f(2)=0 f(2)=0;三个海盗时,若第一个海盗被喂鱼,则会转化成二海盗的情况,第二个海盗必死,因此第二个海盗一定会同意第一个海盗提出的任何方案, f ( 3 ) = 100 f(3)=100 f(3)=100,(100, 0, 0);四个海盗时,第二个海盗肯定不同意,因为三海盗时他收益最大,第一个海盗需要获得第三、四海盗的支持,因此需要让他们获得比三海盗时更多的利益,给他们各自一枚金币, f ( 4 ) = 98 f(4)=98 f(4)=98, (98, 0, 1, 1);五个海盗时,以及更多海盗的情况,可以很容易知道,第二个海盗都不会同意第一海盗的方案,第一个海盗需要给出比四海盗时,另外三个海盗能获得的更多的金币,分配方案可以为(97, 0, 1, 2, 0)或(97, 0, 1, 0, 2)。

倒水

  1. 假设有一个池塘,里面有无穷多的水。现有2 个空水壶,容积分别为 5 升和6 升。问题是如何只用这2 个水壶从池塘里取得3 升的水?
    解:6升倒满后往5升里倒,剩1升,5升倒干净,再把那1升倒到5升桶里;6升桶倒满后灌5升桶,6升桶里剩2升,把5升桶倒干净,剩下的2升再倒到5升桶里;6升桶倒满再往5升桶里倒,此时6升桶里剩3升水。
    基本思路:不断增加小桶里的水容量,让大桶装的水填满小桶后剩余的水越来越多。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值