摘要:学会编程,不仅可以成为你谋生的技能,还能大大提高你的逻辑思维能力,当你面对人生各种困境时,你才会快速找到解决办法。
(相关资料图)
学会编程,不仅可以成为你谋生的技能,还能大大提高你的逻辑思维能力。当你面对人生中各种困境时,你的逻辑思维能力可以帮你很快的找到解决办法。
反之,如果一个人的逻辑思维能力很糟糕,他的人生各方面往往也会很糟糕。
电影《教父》里面有句台词,“花半秒钟就看透事物本质的人,和花一辈子都看不清事物本质的人,注定是截然不同的命运。”
这里说的“本质”,就是指逻辑思维能力。
弄懂以下10道逻辑思维测试题,可以快速提高你的逻辑思维能力,学编程的朋友,一定要好好看看哦!
一、有口井7米深,有个蜗牛从井底往上爬,白天爬3米,晚上往下坠2米,问蜗牛几天能从井里爬出来?
答案:蜗牛5天能从井里爬出来。
第一天白天向上爬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米。蜗牛5天能从井里爬出来。
二、一毛钱一个桃,三个核换一个桃,拿1块钱能吃几个桃?
答案:
1块钱买10个桃,剩10个核;
9个核换3个桃,加上余下的一个,剩4个核;
3个核换一个桃,加上余下的一个,剩2个核;
赊1个桃,吃完后剩3个核都给卖桃的,顶赊的那个。
加起来,1块钱能吃15个桃。
三、小王、小张、小赵三个人是好朋友,他们中间其中一个人下海经商,一个人考上了重点大学,一个人参军了。此外他们还知道以下条件:小赵的年龄比士兵的大;大学生的年龄比小张小;小王的年龄和大学生的年龄不一样。请推出这三个人中谁是商人?谁是大学生?谁是士兵?
小张是商人,小赵是大学生,小王是士兵。
解题思路:假设小赵是士兵,那么就与题目中"小赵的年龄比士兵的大"这一条件矛盾了,因此,小赵不是士兵;假设小张是大学生,那就与题目中"大学生的年龄比小张小"矛盾了,因此,小张不是大学生;假设小王是大学生,那么,就与题目中"小王的年龄和大学生的年龄不一样"这一条件矛盾了,因此,小王也不是大学生。所以,小赵是大学生。由条件小赵的年龄比士兵的大,大学生的年龄比小张小得出小王是士兵,小张是商人。
四、姐姐上街买菜回来后,就随手把手里的一些零钱放在了抽屉里,可是,等姐姐下午再去拿钱买菜的时候发现抽屉里的零钱没有了,于是,她就把三个妹妹叫来,问她们是不是拿了抽屉里的零钱。
老二说:“我拿了,中午去买零食了。”
老三说:“我看到老二拿了。”
小妹说:“总之,我与老三都没有拿。”
这三个人中有一个人在说谎,那么到底谁在说谎?谁把零钱拿走了?
丙说谎,甲和丙都拿了一部分。
假设甲说谎的话,那么乙也说谎,与题意不符;
假设乙说谎,那么甲也说谎,与题意不符;
那么,说谎的肯定是丙了,只有甲和丙都拿零钱了才符合题意。
五、现有2个空水壶,容积分别为5升和6升,如何只用这2个水壶取得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分钟 内得赶到演唱会场,途中必需跨过一座桥,四个人从桥的同一端出发,你得帮助他们到达另一端,天色很暗,而他们只有一只手电筒。一次同时最多可以有两人一起 过桥,而过桥的时候必须持有手电筒,所以就得有人把手电筒带来带去,来回桥两端。手电筒是不能用丢的方式来传递的。四个人的步行速度各不同,若两人同行则 以较慢者的速度为准。Bono需花1分钟过桥,Edge需花2分钟过桥,Adam需花5分钟过桥,Larry需花10分钟过桥。他们要如何在17分钟内过 桥呢?
2+1先过,用了2分钟;
然后1回来送手电筒,用了1分钟;
5+10再过,用了10分钟;
2回来送手电筒,用了2分钟;
2+1过去,用了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)!]。
合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!
我的测试学习交流群:902061117群里有技术大牛一起交流分享~
推荐好文:
包装成1年工作经验的测试工程师,我给他的面试前的建议如下
自动化测试到底要学什么?
为何跳槽不考虑腾讯?聊聊我和鹅厂的一点往事
自动化测试和手动测试哪个更高级?
新手必看:怎么写一个合格的测试用例?
python登录接口测试问题记录与解决 ( 干 货 )