2008年7月24日星期四

一道智力题

昨天晚上 身体不是很好 回家就睡觉了。没写

今天中午到的公司 乘着装rawhide tree 的时候 整理一题昨天做的智力题

题目:
有100个球,AB2人分别取球每人每次可以取[1-5]个球,A先取,拿到最后一个球的人就赢得了这个比赛。问A的策略。
刚上来我觉得,无论A第一次取多少个B都能改换自己取球的数量做到使球数有一定奇偶规律,让自己一定能拿到球。但是细想又不是这样,那A如何可以使用这个先机来确定自己的胜利呢?

我从A最后一次取球的期望值开始推论
1.A最后一次期望球数为d1={5,4,3,2,1}
这样自己才能把球一次拿完取得胜利。那A如何取最好第二次才能使B无论如何取都逃脱不了剩下上面那个集合里面球数的命运呢?可以知道,当B面临6球的时候,无论他如何取,球数都会最终被控制在d1中。
2.所以A最后第二轮期待的集合d2={11,10,9,8,7}
A最后第二次取球时遇到d2内任何一个数的时候他是必胜的。他此时只需把球拿剩6个就能确保自己的胜利。从而A希望B最好第二轮面临的球数是12. 这样就能必胜。取球的策略就是 自己和B取球的和等于6.
3.d3={17,16,15,14,13}=> 上轮目的让B面临18 取球策略也是 自己和B取球和为6.
4.d4={23,22,21,20,19}=> 上轮B面临 24 策略同上。
。。。
。。。
。。。
可以退出规律 即每次A期待B上轮面对的剩球数之差为6
a1 = 6 a2 = 12 a3 = 18 ...... a10 = 60 ...... a16 = 96.
可以推段出 B一共可以拿 16次 球 第一次 期待B面对96 球

得出结论为第一次 A应拿走4球 之后每次取球策略为:取球数和上次B取球数之和为6
如此就能必胜。

这题在某种程度上有点像海盗分金问题。 又有点像2个男孩追女仔。2个男的都需要遵守女孩定下的规定(每次取球数目限制)但是A却能得到优先权。 如果A没有计划傻乎乎的行动,第二轮就能让B把女孩强去了(把每次期待的必胜结果留给A)
告诫每个比较讨女孩欢心的男孩,不要觉得她一定就是你的一定要认真对她:)
对于男孩B就要等待A的失误了:)
今天继续学习emacs 继续整理文档准备新系统,一定要坚持先把工具强化。
还有希望我家那头猪身体好起来

没有评论: