概率统计、组合数学等专项练习

Calvin和David正在玩取纽扣游戏,桌上一共有16个纽扣,两人轮流来取纽扣,没人每次可以选取1个或3个或6个(不允许不取),谁取完最后的纽扣谁赢(桌上只剩1个或3个或6个纽扣的情况下)。Calvin和David都非常想赢得这个游戏,如果Calvin可以先取,Calvin的必胜策略第一步应该取?

16是偶数 1,3是奇数 6是偶数
如果不拿6,两个人一直拿1或者3,先手每次都面临的是偶数,最后面临0,肯定会输,
所以先手面临偶数为必败态,一定要拿一次偶数6转换先后手。
先拿6,后手也拿6,剩4=3+1,后手赢。(6拿的太早了)
先拿1,后手拿3,剩12=3+3+3+3=6+6,先手拿什么后手拿什么,后手赢。(没有拿6的机会)
下面证明先手先拿3,后手怎么拿,先手也必赢。
先拿3,后手拿6,剩7=3+3+1=6+1,先手拿3,剩4=3+1,先手赢。
先拿3,后手拿3,剩10=6+3+1=3+3+3+1,先手拿6,剩4=3+1,先手赢。
先拿3,后手拿1,剩12=6+6=6+3+3,先手拿3,剩9=6+3,先手赢。

现有两堆硬币,小明和小亮玩游戏,每次每人只能从其中一堆中取走1个或2个硬币,最后将硬币取完者算作胜利,当两堆硬币的个数分别是12,13时,小明应该如何安排策略才能必定获得胜利?

小明先在13的堆中取一个,之后不管小亮在哪个堆中取多少个,小明都在另一个堆中取相同多个,比如小亮在第一堆取2个,小明就在第二堆取2个,这样两堆一直一样多,最后一个必定被小明取到。

有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒?

每个老鼠只有死或活2种状态,因此每个老鼠可以看作一个bit,取0或1
N个老鼠可以看作N个bit,可以表达2^N种状态(其中第i个状态代表第i个瓶子有毒)
例如:当N=2时,可以表达4种状态
0,0( 一号老鼠活,二号老鼠活)
0,1( 一号老鼠活,二号老鼠死)
1,0( 一号老鼠死,二号老鼠活)
1,1( 一号老鼠死,二号老鼠死)
具体来说,有A、B、C、D这4个瓶子,一号老鼠喝A和B, 二号老鼠喝B和C
如果 0,0 ( 一号老鼠活,二号老鼠活),说明是D有毒,第0个状态代表第4个瓶子有毒
如果 0,1 ( 一号老鼠活,二号老鼠死) ,说明是C有毒 ,第1个状态代表第3个瓶子有毒
如果 1,0 ( 一号老鼠死,二号老鼠活) ,说明是A有毒 ,第2个状态代表第1个瓶子有毒
如果 1,1 ( 一号老鼠死,二号老鼠死) ,说明是B有毒 ,第3个状态代表第2个瓶子有毒
所以题目就转化为:用2进制来表示1000个数最少需要多少位?

你可能感兴趣的:(面试)