猴子过河

 

题目:有6个猴子AaBbCc要过一条河,河上面只有一条小船。

规则:(1)船上一次最多只能容纳两个猴子,船一开始在猴子这边的岸上。

(2) ABC是大猴,分别是abc三个小猴的家长,无论是在两边岸上或者船上,如果某个小猴和其他大猴在一起,而自己的家长不在,它就会被其他大猴干掉。

(3) 只有3个大猴ABC和小猴a会划船。

要给出一个全体猴子安全过河的方案。

这个题目我赴京面试前曾经在BBS上面见过,当时没有细看,以为简单,结果被问到这题的时候真是振腕叹息,只好白手起家仔细思考。首先考虑第一步,初次渡河的可行方案只有ab,Aa,Bb三种(认为BC和bc对等),很快可以发现前两种是死路,于是就有了下面的解答(_代表船):

1)  AaBbCc_
2)  AaCc            _Bb
3)  AaBCc_            b
4)  ABC            _abc
5)  AaBC_            bc
6)  Aa            _BbCc
7)  AaBb_            Cc
8)  Bb            _AaCc
9)  BbCc_            Aa
10) bc            _AaBC
11) abc_            ABC
12) b            _AaBCc
13) ab_            ABCc
14)             _AaBbCc

到了第6步的时候,我当时没敢往第7步上面想,因为以为7和2一样的,继续下去将是死路,于是疑惑了一把。后来面试官善意提示了一下,我才发现,不是对等的,因为船在不同的地方!!

于是走出7,再走出8,这时很明显了,8和7是关于河岸对称的,这回是真正的对称了!接下来只要将654321对称走一下,结果就出来了!

 

我觉得这个问题只要第四步两边状态为ABC和_abc,方案按照上面就可行。初次渡河的方案选择ab,ac,Bb,Cc,最终可过河。

以先ab 为例:

1       AaBbCc_

2       ABCc               _ab

3       AaBCc_               b

4       ABC               _abc

5       AaBC_               bc

6       Aa               _BbCc

7      AaBb_                Cc

8       Bb               _AaCc

9       BbCc_               Aa

10     bc               _AaBC

11     abc_               ABC

12     b                _AaBCc

13     ab_                ABCc

14)                      _AaBbCc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值