逆向思维解面试题(打水和取火柴问题)

 逆向思维如何使用呢?大致的操作是从结论出发,将结论当成已知信息,再将题目对其的需求表达出来,一步步的倒推回去,最终得到一个可以简单得到的条件(笛卡尔的万能解题法:可以想成是假设一个x,进行关于x的方程求解)。
打水问题:通过一个9升水的桶和一个4升水的桶在河里取6升水
 反思思路:
   1. 假设在9升水的桶里已经有了6升水(将结论当成已知信息),接下来需要解决的是如何可以从9升水桶里倒出3升水,进一步倒推,只需要4升水桶里有1升水即可。
   2. 而1升水是否可以通过简单操作得到呢?思考一下就能知道,9升水的桶倒入两次4升水,然后4升水桶再将9升水桶倒满那么就剩下3升水,接着9升水桶里倒入3升和4升,然后4升水桶再将它倒满就剩下2升水,然后重复一次操作,4升水桶里就剩下1升水。
   3. 如果按常规思考的话,6=2+4,4已知,只要倒腾出2升水就可以了,而上面思路过程中也得到了。
取火柴问题:100根火柴,我和小明轮流取,每个人每次只能取1~7根,谁拿到最后一个火柴谁赢,问有必胜策略吗?有的话先手还是后手必胜?
 反思思路:
   1. 假设我要赢,即拿到最后一个火柴,那么最后一轮必定是小明拿,我再拿,我胜利这样的情节。
   2. 我们可以思考最后一轮时火柴应该还剩多少根才能保证我拿到,容易知道火柴数一定大于7,而当火柴数大于8的时候,并不一定是最后一轮(存在小明拿了之后,火柴数大于7的可能),所以火柴数大于7且小于等于8,才能保证这是最后一轮和我拿到最后一根的要求。(易知:每轮8根,是我可以控制的)
   3. 接着我们从最后一轮往前推,必须要每一轮都总共取8根才行(不然会打破最后一轮一定是8根的需求)
   4. 100%8=4,所以我必须为先手,拿4根,之后都控制每轮拿了8根即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值