摘要:学习编程不仅可以成为谋生的技能,还可以大大提高逻辑思维能力。 当一个简单的故事面临人生的各种困境时,你很快就会找到解决的办法。
记住编程不仅可以成为谋生的技能,还可以大大提高逻辑思维能力。 当一个简单的故事面临人生的各种困境时,你的逻辑思考能力会帮助你很快找到解决办法。
相反,逻辑思维能力差的人,在人生的各个方面往往都是坏事。
在电影《教父》中,有一句台词是“用30分钟就能看穿事物本质的人和用一生也看不到事物的人注定是完全不同的”。
这里的“本质”是指逻辑思维能力。
解答以下10道逻辑思维测试题,逻辑思维能力迅速提高。 学习编程的朋友,请一定要看看。
一、井深7米,有一只从井底往上爬的蜗牛,白天落3米,晚上落2米,蜗牛问多少天才能出井。
答:蜗牛可以出井五天。
第一天白天上升3米,晚上落下2米,累计上升高度1米,列式为3-2=1;
第二天白天上升3米,晚上落下2米,累计上升高度为2米,记载为1 3-2=2;
第三天白天上升3米,晚上落下2米,累计上升高度为3米,记载为2 3-2=3;
第四天白天上升3米,晚上落下2米,累计上升高度为4米,记载为3 3-2=4;
第五天白天爬3米,4(3=7)就能从井口出来。
以上是比较愚蠢的解法,但另一个比较快速聪明的解法如下。
如果一只为期x天的蜗牛需要从7米的井里爬上来,可以通过题意得到
(3-2) * ) x-1 )3=7,解方程得到X=5。
3-2是每天蜗牛的实际上升高度,第x天白天蜗牛上升3米就可以从井口出来。 X-1表示到第x天为止的累计上升高度。
所以,有一种蜗牛,井深7米,从井底往上爬,白天掉3米,晚上掉2米。 蜗牛可以溜井五天。
二、换桃子一分钱,三个核和一个桃子,一元能吃几个桃子?
答案:
一元买十个桃子,留十个核;
更换9个核和3个桃子,加上剩下的1个,剩下的4个核;
三个核加一个桃子,剩下一个,剩下两个核;
挂一个桃子,吃完后,剩下三个核的是卖桃子的,挂的。
加起来,一元钱可以吃十五个桃子。
三、诚心诚意的太阳、小张、小赵三个人是mhdfn,他们中一个下海做生意,一个考上了重点大学,一个参军。 另外,他们知道以下条件:赵先生的年龄比士兵大; 大学生年龄比小张小诚心太阳年龄和大学生年龄不一样。 这三个人中谁是商人? 谁是大学生? 谁是士兵?
小张是商人,小赵是大学生,诚心诚意的太阳是士兵。
解决问题的想法:如果赵先生是士兵的话,就和标题中“赵先生的年龄比士兵大”的条件相矛盾。 因此,赵先生不是士兵。 如果小张是大学生的话,就会和标题中的“大学生的年龄比小张小”相矛盾。 因此,小张不是大学生。 假设诚心的太阳是大学生,则与主题“诚心的太阳年龄和大学生年龄不一样”的条件相矛盾,因此,诚心的太阳也不是大学生。 所以,赵先生是大学生。 条件小赵年龄比战士大,大学生年龄比小张小,诚心诚意的太阳是士兵,小张是商人。
四、姐姐上街买菜后,把手头的零钱放进了抽屉里。 可是,姐姐下午取钱去买菜的时候,发现抽屉里的零钱不见了。 于是,她叫来了妹妹三个人,问她有没有把抽屉里的零钱拿走。 nrdbl说:“我带来了。 我中午去买了点心。”
hcdmj说:“我看到nrdbl有。 ”
妹妹说:“总之,我和hcdmj都没有。 ”
这三个人中有一个在说谎,到底是谁在说谎呢? 谁把零钱拿走了?
丙说谎,甲和丙都拿了一部分。
假设甲方说谎,乙方也说谎,与题意不一致;
假设乙方说谎,甲方也会说谎,与题意不符;
那么,说谎的一定是丙。 甲乙丙都要有零钱才能题意。
有五两个空水壶。 开放的眼睛分别是5升和6升。 怎么只靠这两个水壶就能得到3升水? (不得借用另一个容器)
6升水壶a,5升水壶b
加满a倒入b中,a剩下1升水;
倒入空的b,把a剩下的水倒入b,再注满a,倒入b,a剩下2升水;
倒入空的b,把a剩下的水倒入b,把a装满后倒入b,a剩下3升水。
六、U2合唱团必须在17分钟内赶到演唱会会场。 你必须中途过桥。 四个人从桥的同一端出发。 你必须帮助他们到达另一边。 天空很暗,只有一只手电筒。 一次最多两个人可以一起过桥,但是过桥的时候必须带着手电筒,所以必须带着手电筒在桥的两端来回走。 手电筒丢了不能告诉你。 4人行走速度各不相同,2人同行时以慢者速度为准。 简单母鸡需要一分钟过桥,Edge需要两分钟过桥,Adam需要五分钟过桥,热情的魔镜需要十分钟过桥。 他们怎么在17分钟内过桥?
2先过了,花了两分钟;
然后回去一趟,发手电筒,花了一分钟;
5再过10分钟;
2我送来手电筒,花了两分钟;
2过去,花了两分钟;
总共用了2+1+10+2+2=17分钟。
七、有7克、2克砝码各一个,天平一只,如何只用这些物品称三次,将140克的盐分成50、90克各一份?
解法一:
①用天平将盐分成70g两份,即140 ->70 + 70
②用天平将其中一份70g的盐分成35g两份,即70 ->35 + 35
③把两个砝码放在天平两边,将35g的盐分成20克和15克,即35 + 2 + 7 ->(20 + 2) + (15 + 7)
将得到的20g盐和最开始的70g盐放在一起即得到90g的盐,其余的盐放在一起就是50g。即
90 = 20 + 70
50 = 15 + 35
解法二:
①140 + 2 ->71 + (69 + 2)
②71 + 9 ->40 + (31 + 9)
③31 + 69 -> 50 + 50
90 = 50 + 40
解法三:
①140 ->70 + 70
②70 ->61 + 9 将两个砝码放在一边,即可称出9g
③61 -> (9 +2) + 50
90 = 9 + 11 + 70
解法四:
②70 ->35 + 35
③35 + 70 + 2 + 7 ->(50 + 7) + (55 + 2)
90 = 55 + 35
解法五:
①2 + 7 = 9
②2 + 7 + 9 =18
③7 + 18 = 23 + 2
50 = 23 + 9 +18
解法六:
②7 = 2 + 5;69剩64
③2 + 5 + 7 = 14;64剩50
90 = 14 + 5 + 71
解法七:
②7 + 9 = 16
③9 + 16 = 25
50 = 25 + 16 + 9
解法八:
②7 + 9 = 2+ 14
③2 + 14 + 9 = 18 + 7
50 = 2 + 7 + 9 + 14 + 18
八、有12个鸡蛋,其中有1个是坏的(重量与其余鸡蛋不同),现要求用天平称三次,称出哪个鸡蛋是坏的!
把这12个鸡蛋分成3组(1,2,3,4)、(5,6,7,8)和(9,10,11,12)。
首先称(1,2,3,4)和(5,6,7,8),称的结果有如下几种可能:
▼ 第一种可能:(1,2,3,4)=(5,6,7,8)【第一次称重】
说明1~8的鸡蛋都是好鸡蛋。此时,再接着称(6,7,8)和(9,10,11)。【第二次称重】
此时会存在以下三种可能性:
1)如果(6,7,8)=(9,10,11),说明坏鸡蛋是12。在这种情况下,只需要称2次就能找出坏鸡蛋。
2)如果(6,7,8)>(9,10,11),说明坏鸡蛋在(9,10,11)中,同时可以说明坏鸡蛋一定比好鸡蛋轻。接着称9和10。如果9=10,则说明11为坏鸡蛋;否则,轻的为坏鸡蛋。【第三次称重】
3)如果(6,7,8)<(9,10,11),与2)使用相同的方法称3次就可以得到坏鸡蛋。【第三次称重】
▼ 第二种可能:(1,2,3,4)≠(5,6,7,8)【第一次称重】
在这种情况下,说明坏鸡蛋一定在(1,2,3,4,5,6,7,8)中。
对于(1,2,3,4)>(5,6,7,8)和(1,2,3,4)<(5,6,7,8)两种情况,分析方法是类似的。
在这里以(1,2,3,4)>(5,6,7,8)为例进行分析:
此时接着称重(1,2,5)和(3,4,6)【第二次称重】
1)如果(1,2,5)=(3,4,6),说明坏鸡蛋一定在(7,8)中,而且坏鸡蛋一定比好鸡蛋轻。
接着称重(7,8),轻的就是坏鸡蛋。【第三次称重】
2)如果(1,2,5)>(3,4,6),坏鸡蛋一定在(1,2,3,4,5,6)中,再继续称(2,3,5)和(1,4,7)。【第三次称重】
① 如果(2,3,5)=(1,4,7),说明6是坏鸡蛋。
② 如果(2,3,5)>(1,4,7),
假如坏鸡蛋重,此时坏鸡蛋为(1,2,3,4)∩(1,2,5)∩(2,3,5)=2。
假如坏鸡蛋轻,此时坏鸡蛋为(5,6,7,8)∩(1,4,7)∩(3,4,6)=空集。说明坏鸡蛋一定更重,且坏鸡蛋为2。
③ 如果(2,3,5)<(1,4,7),与(2,3,5)>(1,4,7)分析方法类似。
3)如果(1,2,5)<(3,4,6),分析方法与(1,2,5)>(3,4,6)的情况类似。
九、烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一小时十五分钟呢? (微软的笔试题)
半小时:两头一起烧
一小时十五分钟:先取两根绳子,一根从一端烧,一根从两端烧,两端烧的绳子烧完时,将一端烧的绳子熄灭。这样得到半个小时的记时。将刚才熄灭的绳子两端点燃,燃尽的时间即为15分钟。再取一条两头一起烧,加起来就是一小时十五分钟。
十、2n个人排队进电影院,票价是50元。在这2n个人当中,其中n个人只有50元,另外n个人只有100元面钞。愚蠢的电影院开始卖票时1分钱也没有。问:有多少种排队方法使得每当一个拥有100元面钞的人买票时,电影院都有50元找钱?
本题可用递归算法,但时间复杂度为2的n次方,也可以用动态规划法,时间复杂度为n的平方,实现起来相对要简单得多,但最方便的就是直接运用公式:排队的种数=(2n)!/[n!(n+1)!]。
如果不考虑电影院能否找钱,那么一共有(2n)!/[n!n!]种排队方法(即从2n个人中取出n个人的组合数)
对于每一种排队方法,如果他会导致电影院无法找钱,则称为不合格的,这种排队方法有(2n)!/[(n-1)!(n+1)!]种(从2n个人中取出n-1个人的组合数)
所以合格的排队种数就是(2n)!/[n!n!]- (2n)!/[(n-1)!(n+1)!] =(2n)!/[n!(n+1)!]。
文末分享:公众号有我学习整理出来的自动化测试资料【接口自动化、app自动化、web自动化移动端自动化】、大厂面试文档、简历模板…待你来领取~ 见公众号:【伤心的辣条】愿你我都有所获…
合理利用自己每一分每一秒的时间来学习提升自己,不要再用”没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!
我的测试学习交流群:902061117 群里有技术踏实的犀牛一起交流分享~
推荐好文:
包装成1年工作经验的测试工程师,我给他的面试前的建议如下
自动化测试到底要学什么?
为何跳槽不考虑腾讯?聊聊我和鹅厂的一点往事
自动化测试和手动测试哪个更高级?
新手必看:怎么写一个合格的测试用例?
python登录接口测试问题记录与解决 ( 干 货 )