75道程序员逻辑思维面试题(含答案)

【1】

1、先把5升的灌满,倒在6升里,这时6升的壶里有5升水

2.再把5升的灌满,用5升的壶把6升的灌满,这时5升的壶里剩4升水

3.把6升的水倒掉,再把5升壶里剩余的水倒入6升的壶里,这时6升的壶里有4升水

4.把5升壶灌满,倒入6升的壶,5-2=3

【2】

把第二个满着的杯子里的水倒到第五个空着的杯子里

【3】

小黄。因为小李是第一个出手的,他要解决的第一个人就会是

小林,这样就会保证自己的安全,因为如果小黄被解决,自己理所当然地会成为小林的目标,他也必定会被打死。而小黄如果第一枪不打小林而去打小李,自己肯定会死(他命中较高,会成为接下来的神枪手小林的目标)。他必定去尝试先打死小林。那么3% 5%的几率是8%(第一回合小林的死亡率,但会有一点点偏差,毕竟相加了)。那么第一回合小黄的死亡率是2%多一点点(小林的命中减去自己的死亡率)。假设小林第一回合死了,就轮到小李打小黄了,那么小李的命中就变成了5%多一点点(自己的命中加上小黄的死亡率)。这样就变成了小李小黄对决,

第二回合的小李的第一枪命中是5%,小黄也是。可是如果拖下去的话占上风的自然就是小黄了,可能赢得也自然是小黄了。至于策略我看大家都领悟了吧。

【4】

甲分三碗汤,乙选认为最多和最少的倒回灌里再平分到剩余的两个碗里,让丁先选,其次是甲,最后是乙

【5】

假如先前N个中没有重叠且边上的都超出桌子的边上且全都是紧靠着的.那么根据题意就可以有:

空隙个数Y=3N/2 3(自己推算)

每一个空都要一个圆来盖

桌面就一共有圆的数为:

Y N=3N/2 3

=5N/2 3 <=4N(除N=1外)

所以可以用4N个硬币完全覆盖.

【6】

用绳子围球一周后测绳长来计算半径(用纸筒套住球来测更准)

借助排水法测体积后计算半径

【7】

要两人才能做到,

先在平面上摆放一枚,再在这枚硬币的正面立着放两枚(这两枚是侧面接触的),这样,这三枚硬币之间形成一个三角形空隙。剩下的两枚在空隙处交叉就行了,注意这两枚同样是平躺着,但可能需要翘起一定的角度。

【8】

方块5

从第一句话可以排除掉 黑桃J,8,2,7,3 草花K,6因为这种点数只出现一次.

从第二句话可以知道Q所知道的花色中所有的点数都出现过两次或以上才肯定P不知道是哪一张牌.这样我们可以看出只有红桃和方块存在这种现象,所以必然是这两种花色之一.

从第三句话P肯定自己知道是什么牌可以知道这个点数在红桃和方块里肯定是唯一性,所以可以排除红桃和方块A还剩下红桃Q ,4和方块5不能肯定了.但是Q知道花色啊.所以

从第四句话可以肯定就是方块5了,因为是红桃中的其中一个的话,Q是不能判断他知道的.

所以结论就是方块5

【9】

经过第一轮,说明任何两个数都是不同的。第二轮,前两个人没有猜出,说明任何一个数都不是其它数的两倍。现在有了以下几个条件:1.每个数大于2.两两不等3.任意一个数不是其他数的两倍。每个数字可能是另两个之和或之差,第三个人能猜出144,必然根据前面三个条件排除了其中的一种可能。假设:是两个数之差,即x-y=144。这时1(x,y>)和2(x!=y)都满足,所以要否定x+y必然要使3不满足,即x+y=2y,解得x=y,不成立(不然第一轮就可猜出),所以不是两数之差。因此是两数之和,即x+y=144。同理,这时1,2都满足,必然要使3不满足,即x-y=2y,两方程联立,可得x=18,y=36。

这两轮猜的顺序其实分别为这样:第一轮(一号,二号),第二轮(三号,一号,二号)。这样分大家在每轮结束时获得的信息是相同的(即前面的三个条件)。

那么就假设我们是C,来看看C是怎么做出来的:C看到的是A的36和B的18,因为条件,两个数的和是第三个,那么自己要么是72要么是144(猜到这个是因为72的话,18就是36和72的和,144的话就是18和36的和。这样子这句话看不懂的举手):

假设自己(C)是72的话,那么B在第二回合的时候就可以看出来,下面是如果C是72,B的思路:这种情况下,B看到的就是A的36和C的72,那么他就可以猜自己,是36或者是18(猜到这个是因为36的话,36加36等于72,18的话就是36和18的和):

如果假设自己(B)头上是36,那么,C在第一回合的时候就可以看出来,下面是如果B是36,C的思路:这种情况下,C看到的就是A的36和B的36,那么他就可以猜自己,是72或者是(这个不再解释了):

如果假设自己(C)头上是,那么,A在第一回合的时候就可以看出来,下面是如果C是,A的思路:这种情况下,A看到的就是B的36和C的,那么他就可以猜自己,是36或者是36(这个不再解释了),那他可以一口报出自己头上的36。(然后是逆推逆推逆推),现在A在第一回合没报出自己的36,C(在B的想象中)就可以知道自己头上不是,如果其他和B的想法一样(指B头上是36),那么C在第一回合就可以报出自己的72。现在C在第一回合没报出自己的36,B(在C的想象中)就可以知道自己头上不是36,如果其他和C的想法一样(指C头上是72),那么B在第二回合就可以报出自己的18。现在B在第二回合没报出自己的18,C就可以知道自己头上不是72,那么C头上的唯一可能就是144了。

【1】

15%8%/(85%×2%+15%8%)

【11】

f(x)=(6-2x)*x,当x=15时,有最大值45。

182元设是X公里处赚最多钱。问题就成是求一个一元二次方程的最大值,求得是在15公里处赚钱最多,45元。一共24公斤……

【12】

6种结果

大、中、小:(2\3\68)(5\25\7)(8\2\72)(11\15\74)(14\1\76)(17\5\78)

【13】

因为1=5,所以5=1

【14】

本题可用递归算法,但时间复杂度为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)!]。至于为什么不合格数是(2n)!/[(n-1)!(n 1)!],说起来太复杂,这里就不讲了。

【15】

2元

【16】

M=5 C得第二名

因为ABC三人得分共4分,三名得分都为正整数且不等,所以前三名得分最少为6分,4=58=41=22=12,不难得出项目数只能是5.即M=5.

A得分为22分,共5项,所以每项第一名得分只能是5,故A应得4个第一名一个第二名.22=5*4 2,第二名得2分,又B百米得第一,9=5 1 1 1 1 所以跳高中只有C得第二名

B的5项共9分,其中百米第一5分,其它4项全是1分,9=5 1=1 1 1.即B除百米第一外全是第三,跳高第二必定是C所得

【17】

房子 黄 蓝 红 绿 白

国籍 挪威 丹麦 英国 德国 瑞士

饮料 矿泉水 茶 牛奶 咖啡 啤酒

宠物 猫 马 鸟 鱼 狗

香烟 DUNHILL 混合烟 PALLMALL PRINCE BLUE MASTER

【18】

1 2 3 4 5

蓝房子 绿 黄 红 白

北京人 上海 香港 天津 成都

茅台酒 葡萄 矿泉水 茶 啤酒

豆腐 面条 牛肉 比萨 鸡

健牌 希尔顿 万宝路 555 红塔山

马 狗 蛇 猫 鱼

【19】

A家先打:55

B家如果打:TT的话.

C家随便他吃不吃..

A家都不跟.(反正B家跟C家哪家有吃55的话,都不跟.除非A家88可以出就跟)

如果刚才是B家吃的话,就B家出牌:你看.B家最多也出44然后C家吃他66.如果他是出两个99那地主也不跟!;如果B家出单的话.地主还有一个2可以压!(反正B家跟C家肯定是会打对子的!)

照刚才那样.A家牌下面应该剩:2 K Q J T 9 7777 66 3333

B家:大王 小王 2 A K QQ JJ 9 8 55

C家:22 AAA K Q J T 99 8 44

A家吃完88后.B家吃JJ(反正无论如何.都会打单的.)要是打单的话.A家就用2压.B家双王不可能会压吧.(即使压了也没事.)

A家用2压完后就打:K Q J T 9

B家如果用双王吃的话.那等他出牌的时候.马上用3333吃他.如果B家没吃的话.C家会吃:A K Q J T

然后A家可以用3333压下A K Q J T 如果B家用双王吃的话.那正合我意了哈.!A家反正只剩下7777 66了等他打什么..都用7777吃他.最后打66

【2】

先拿下第一楼的钻石,然后在每一楼把手中的钻石与那一楼的钻石相比较,如果那一楼的钻石比手中的钻石大的话那就把手中的钻石换成那一层的钻石。

(因为“只能拿一次”是在外文翻译过来的,所以是总共只能拿一次,还是每层只能拿一次?无法知道。但如果这个和“在稻田一直走,不能回头,请你捡出最大的一个稻穗”这样的题目一样的话,那么上面的就是正确答案!)

【21】

假设这四个人分别为甲(1分钟)乙(2分钟)丙(5分钟)丁(1分钟)

第一次去:甲和乙 (2分钟)

第一次回:甲(1分钟)

第二次去:丙和丁(1分钟)

第二次回:乙(2分钟)

第三次去:甲和乙(2分钟)

总计 :17分钟

【22】

1/3

(因为你知道一共有两个小孩 其中一个是女孩 而你已知的那个女孩并不知道是她第一个孩子还是第二个孩子所以它的概率是1/3

如果题目换成 已知第一个是女孩 那么第二个是女孩的概率就是1/2了)

【23】

主要是因为如果是方的、长方的或椭圆的,盖子很容易掉进地下道!但圆形的盖子嘛,就可以避免这种情况了。另外、圆形的盖子可以节省材料,增大洞口面积,井盖及井座的强度增加不易轧坏。

【24】

  1. 天平一边放7 2=9克砝码,另一边放9克盐。

  2. 天平一边放7克砝码和刚才得到的9克盐,另一边放16克盐。

  3. 天平一边放刚才得到的16克盐和再刚才得到的9克盐,另一边放25克盐。

【25】

把第一块芯片与其它逐一对比,看看其它芯片对第一块芯片给出的是好是坏,如果给出是好的过半,那么说明这是好芯片,完毕。如果给出的是坏的过半,说明第一块芯片是坏的,那么就要在那些在给出第一块芯片是坏的芯片中,重复上述步骤,直到找到好的芯片为止。

【26】

12个时可以找出那个是重还是轻,13个时只能找出是哪个球,轻重不知。

把球编为①②③④⑤⑥⑦⑧⑨⑩⑾⑿。(13个时编号为⒀)

第一次称:先把①②③④与⑤⑥⑦⑧放天平两边,

㈠如相等,说明特别球在剩下4个球中。

把①⑨与⑩⑾作第二次称量,

⒈如相等,说明⑿特别,把①与⑿作第三次称量即可判断是⑿是重还是轻

⒉如①⑨<⑩⑾说明要么是⑩⑾中有一个重的,要么⑨是轻的。

把⑩与⑾作第三次称量,如相等说明⑨轻,不等可找出谁是重球。

⒊如①⑨>⑩⑾说明要么是⑩⑾中有一个轻的,要么⑨是重的。

把⑩与⑾作第三次称量,如相等说明⑨重,不等可找出谁是轻球。

㈡如左边<右边,说明左边有轻的或右边有重的

把①②⑤与③④⑥做第二次称量

⒈如相等,说明⑦⑧中有一个重,把①与⑦作第三次称量即可判断是⑦与⑧中谁是重球

⒉如①②⑤<③④⑥说明要么是①②中有一个轻的,要么⑥是重的。

把①与②作第三次称量,如相等说明⑥重,不等可找出谁是轻球。

⒊如①②⑤>③④⑥说明要么是⑤是重的,要么③④中有一个是轻的。

把③与④作第三次称量,如相等说明⑤重,不等可找出谁是轻球。

㈢如左边>右边,参照㈡相反进行。

当13个球时,第㈠步以后如下进行。

把①⑨与⑩⑾作第二次称量,

⒈如相等,说明⑿⒀特别,把①与⑿作第三次称量即可判断是⑿还是⒀特别,但判断不了轻重了。

⒉不等的情况参见第㈠步的⒉⒊

【27】

首先求解原题。每道题的答错人数为(次序不重要):26,21,19,15,9

第3分布层:答错3道题的最多人数为:(26 21 19 15 9)/3=3

第2分布层:答错2道题的最多人数为:(21 19 15 9)/2=32

第1分布层:答错1道题的最多人数为:(19 15 9)/1=43

Max_3=Min(3, 32, 43)=3。因此答案为:1-3=7。

其实,因为26小于3,所以在求出第一分布层后,就可以判断答案为7了。

要让及格的人数最少,就要做到两点:

  1. 不及格的人答对的题目尽量多,这样就减少了及格的人需要答对的题目的数量,也就只需要更少的及格的人

  2. 每个及格的人答对的题目数尽量多,这样也能减少及格的人数

由1得每个人都至少做对两道题目

由2得要把剩余的21道题目分给其中的7人: 21/3 = 7,让这7人全部题目都做对,而其它3人只做对了两道题

也很容易给出一个具体的实现方案:

让7人答对全部五道题,11人仅答对第一、二道题,1人仅答对第二、三道题,5人答对第三、四道题,4人仅答对第四、五道题

显然稍有变动都会使及格的人数上升。所以最少及格人数就是7人!

【28】

十年可能包含2-3个闰年,3652或3653天。

19年这个闰年就是28天,1898~197这1年就是3651天,闰年如果是整百的倍数,如18,19,那么这个数必须是4的倍数才有29天,比如19年2月有28天,2年2月有29天。

【29】

下行是对上一行的解释 所以新的应该是3个1 2个2 1个1 :312211

【3】

一,一根绳子从两头烧,烧完就是半个小时。

二,一根要一头烧,一根从两头烧,两头烧完的时候(3分),将剩下的一根另一端点着,烧尽就是45分钟。再从两头点燃第三根,烧尽就是1时15分。

【31】

第一个瓶子拿出一片,第二个瓶子拿出四片,第三个拿出十六片,……第m个拿出n 1的m-1次方片。把所有这些药片放在一起称重量。

【32】

取出标着15便士的盒中的一个硬币,如果是银的说明这个盒是2便士的,如果是镍的说明这个盒是1便士的,再由每个盒的标签都是错误的可以推出其它两个盒里的东西。

【33】

最少1,最多13

见下表,表中蓝色部分服从2为底的指数函数规律,红色部分的数值均为其左边与左上角的两个数之和。

x

1 2 3 4 5 6 7 8 9

x个点最多能把直线分成多少部分

1 2 3 4 5 6 7 8 9 1

x条直线最多能把平面分成多少部分

1 2 4 7 11 16 22 29 37 46

x个平面最多能把空间分成多少

【34】

第一步:游到水池中心。

第二步:从水池中心游到距中心R/4处,并始终保持鼠、水池中心、猫在一直线上。

第三步:沿与中心相反方向的直线游3R/4就可以到达水池边,而猫沿圆周到达那里需要3.14R,所以捉不到老鼠。

【35】

表示为88,接下来,将一个大桶的水倒入小桶中,倒满,表示为853,(第2个大桶减3,小桶加3)则过程如下:

88——853:将3斤给第1个人,变为85(此时4人分别有水3---)

85——823:将2斤给第2个人,变为83(此时4人分别有水3-2--)

83——83——533——56——263——281:将1斤给第1个人,变为28(此时4人分别有水4-2--)

28——253——73——73——433——46——163:将1斤给第3个人,变为63(此时4人分别有水4-2-1-)

63——81:将1斤给第4个人,变为8(此时4人分别有水4-2-1-1)

8——53——35——323:将2斤给第2个人,将2个3斤分别给第3、4个人,(此时4人分别有水4-4-4-4)

【36】

7点x分:(7 x/6)/12=x/6 x=7*6=42/11=38.2

第一次是7点38分,第二次是8点44分

【37】

马36 牛28 羊16

【38】

1

【39】

砝码将以与猴子相同的速度上升,因为它们质量相同,受力也相同

【4】

旋转看速度,金的密度大,质量相同,所以金球的实际体积较小,因为外半径相同,所以金球的内半径较大,所以金球的转动惯量大,在相同的外加力矩之下,金球的角加速度较小,所以转得慢。

【41】

分成1+13两堆, 然后翻转1的那堆

【42】

作图如下:

●●●●●●●●●C●●●●●●●●●●

● ●

● ●

● ●

A C B

● ● ●

● ● ●

● ● ●

● B ● A ●

● ● ●

●●●●●●●●●●●●●●●●●●●●

答题完毕.

【43】

温度,先开一盏,足够长时间后关了,开另一盏,进屋看,亮的为后来开的,摸起来热的为先开的,剩下的一盏也就确定了。

四盏的情况:设四个开关为ABCD,先开AB,足够长时间后关B开C,然后进屋,又热又亮为A,只热不亮为B,只亮不热为C,不亮不热为D。

【44】

1, 改变赋值号.比如 ,-,=

2, 注意质数.

3, 可能把画面颠倒过来.

4, 然后就可以去考虑更改其他数字更改了

247-217=3

【45】

如果轮到第四个海盗分配:1,

轮到第三个:99,,1

轮到第二个:98,,1,

轮到第一个:97,,1,,2,这就是第一个海盗的最佳方案。

【46】

第一个人选择17时最优的。它有先动优势。他确实有可能被逼死,后面的2、3、4号也想把1号逼死,但做不到(起码确定性逼死做不到)

可以看一下,如果第1个人选择21,他的信息时暴露给第2个人的,那么,1号就将自己暴露在一个非常不利的环境下,2-4号就会选择2,五号就会被迫在1-19中选择,则1、5号处死。所以1号不会这样做,会选择一个更小的数。

1号选择一个<2的数后,2号没有动力选择一个偏离很大的数(因为这个游戏偏离大会死),只会选择 1或-1,取决于那个死的概率小一些,再考虑这些的时候,又必须逆向考虑,1号必须考虑2-4号的选择,2号必须考虑3、4号的选择,̷ ̷只有5号没得选择,因为前面是只有连着的两个数(且表示为N,N 1),所以5号必死,他也非常明白这一点,会随机选择一个数,来决定整个游戏的命运,但决定不了他自己的命运。

下面决定的就是1号会选择一个什么数,他仍然不会选择一个太大或太小的数,因为那样仍然是自己处于不利的地位(2-4号肯定不会留情面的),1/6=16.7(为什么除以6?因为5号会随机选择一个数,对1号来说要尽可能的靠近中央,2-4好也是如此,而且正因为2-4号如此,1号才如此̷ ̷),最终必然是在16、17种选择的问题。

对16、17进行概率的计算之后,就得出了3个人选择17,第四个人选择16时,为均衡的状态,第4号虽然选择16不及前三个人选择17生存的机会大,但是若选择17则整个游戏的人必死(包括他自己)!第3号没有动力选择16,因为计算概率可知生存机会不如17。

所以选择为17、17、17、16、X(1-33随机),1-3号生存机会最大。

【47】

这堆桃子至少有3121只。

第一只猴子扔掉1个,拿走624个,余2496个;

第二只猴子扔掉1个,拿走499个,余1996个;

第三只猴子扔掉1个,拿走399个,余1596个;

第四只猴子扔掉1个,拿走319个,余1276个;

第五只猴子扔掉1个,拿走255个,余4堆,每堆255个。

如果不考虑正负,-4为一解

考虑到要5个猴子分,假设分n次。

则题目的解: 5^n-4

本题为5^5-4=3121.

设共a个桃,剩下b个桃,则b=(4/5)((4/5)((4/5)((4/5)((4/5)(a-1)-1)-1)-1)-1)-1),即b=(124a-844)/3125 ; a=3b 8 53*(b 4)/124,而53跟124不可约,则令b=12可有最小解,得a=3121 ,设桃数x,得方程

4/5{4/5{4/5[4/5(x-1)-1]-1}-1}=5n

展开得

256x=3125n 211

故x=(3125n 211)/256=12n 8 53*(n 1)/256

因为53与256不可约,所以判断n=255有一解.x为整数,等于3121

【48】

这堆椰子最少有15621

第一个人给了猴子1个,藏了3124个,还剩12496个;

第二个人给了猴子1个,藏了2499个,还剩9996个;

第三个人给了猴子1个,藏了1999个,还剩7996个;

第四个人给了猴子1个,藏了1599个,还剩6396个;

第五个人给了猴子1个,藏了1279个,还剩5116个;

最后大家一起分成5份,每份123个,多1个,给了猴子。

【49】

答案应该是9月1日。

1)首先分析这1组日期,经观察不难发现,只有6月7日和12月2日这两组日期的

日数是唯一的。由此可知,如果小强得知的N是7或者2,那么他必定知道了老师的

生日。

2)再分析“小明说:如果我不知道的话,小强肯定也不知道”,而该1组日期的

月数分别为3,6,9,12,而且都相应月的日期都有两组以上,所以小明得知M后

是不可能知道老师生日的。

3)进一步分析“小明说:如果我不知道的话,小强肯定也不知道”,结合第2步

结论,可知小强得知N后也绝不可能知道。

4)结合第3和第1步,可以推断:所有6月和12月的日期都不是老师的生日,因为

如果小明得知的M是6,而若小强的N==7,则小强就知道了老师的生日。(由第

1步已经推出),同理,如果小明的M==12,若小强的N==2,则小强同样可以知道老师的生日。即:M不等于6和9。现在只剩下“3月4日 3月5日 3月8日 9月1日

9月5日”五组日期。而小强知道了,所以N不等于5(有3月5日和9月5日),此时,

小强的N∈(1,4,8)注:此时N虽然有三种可能,但对于小强只要知道其中的

一种,就得出结论。所以有“小强说:本来我也不知道,但是现在我知道了”,

对于我们则还需要继续推理

至此,剩下的可能是“3月4日 3月8日 9月1日”

5)分析“小明说:哦,那我也知道了”,说明M==9,N==1,(N==5已经被排除,3月份的有两组)

【5】

如果我问另一个人死亡之门在哪里,他会怎么回答?

最终得到的回答肯定是指向自由之门的。

【51】

1 11 12 13 14 15 16 17 18 19 2 21 22 23= 198

198/ 3= 6余18.

小孩子站在18号位置即可.

【52】

1)27头牛6天所吃的牧草为:27×6=162

(这162包括牧场原有的草和6天新长的草。)

(2)23头牛9天所吃的牧草为:23×9=27

(这27包括牧场原有的草和9天新长的草。)

(3)1天新长的草为:(27-162)÷(9-6)=15

(4)牧场上原有的草为:27×6-15×6=72

(5)每天新长的草足够15头牛吃,21头牛减去15头,剩下6头吃原牧场的草:

72÷(21-15)=72÷6=12(天)

【53】

假设出沙漠时有1根萝卜,那么在出沙漠之前一定不只1根,那么至少要驮两次才会出沙漠,那样从出发地到沙漠边缘都会有往返的里程,那所走的路程将大于3公里,故最后能卖出萝卜的数量一定是小于1根的。

那么在走到某一个位置的时候萝卜的总数会恰好是1根。

因为驴每次最多驮1,那么为了最大的利用驴,第一次卸下的地点应该是使萝卜的数量为2的地点。

因为一开始有3萝卜,驴必须要驮三次,设驴走X公里第一次卸下萝卜

则:5X=1(吃萝卜的数量,也等于所行走的公里数)

X=2,也就是说第一次只走2公里

验算:驴驮1根走2公里时剩8根,卸下6根,返回出发地

前两次就囤积了12根,第三次不用返回则剩8根,则总共是2根萝卜了。

第二次驴只需要驮两次,设驴走Y公里第二次卸下萝卜

则:3Y=1, Y=333.3

验算:驴驮1根走333.3公里时剩667根,卸下334根,返回第一次卸萝卜地点

第二次在途中会吃掉334根萝卜,到第二次卸萝卜地点是加上卸下的334根,刚好是1根。

而此时总共走了:2 333.3=533.3公里,而剩下的466.7公里只需要吃466根萝卜

所以可以卖萝卜的数量就是1-466=534.

【54】

编号为1到1箱, 每箱取跟编号相同数目的黄金, 称量. 少多少钱,就是多少编号的箱子不足.

【55】

分为, 1,2,4 三段.

第一天, 1个环给工人

第二天, 2个环给工人, 拿回一个环

第三天, 1个环给工人

第四天, 4个环给工人, 拿回1个环,2个环

第五天, 一个环给工人

第六天, 2个环给工人,拿回1个环

第七天, 1个环给工人.

【56】

编号1至1, 1号取1片, 2号取2片,以此类推.

称量所有取出药片, 缺少多少, 就是哪两个瓶子分量较轻.

【57】

显然3个女儿的年龄都不为,要不爸爸就为岁了,因此女儿的年龄都大于等于1岁。这样可以得下面的情况:1111=11,121=2,139=27,148=32,157=35,{166=36},{229=36},238=48,247=56,256=6,337=63,346=72,355=75,445=8因为下属已知道经理的年龄,但仍不能确定经理三个女儿的年龄,说明经理是36岁(因为{166=36},{22*9=36}),所以3个女儿的年龄只有2种情况,经理又说只有一个女儿的头发是黑的,说明只有一个女儿是比较大的,其他的都比较小,头发还没有长成黑色的,所以3个女儿的年龄分别为2,2,9!

【58】

应该是三个人付了9*3=27,其中2付给了小弟,25付给了老板

【59】

把每双袜子的商标撕开,然后每人拿每双的一只

【6】

S1= (15 2)t

S2= 3t

得到S2= 6/7 S1. 小鸟飞行两地距离的6/7.

【61】

一个罐子放一个红球,另一个罐子放49个红球和5个蓝球,概率接近75%

【62】

1号罐取一个药片, 2号罐取两个药片,3号罐取3个药片, 4号罐取4个药片.

称量总重量, 比正常重量重几, 就是几号罐子被污染了.

【63】

1 4 9

【64】

因为镜子和你平行.

如果镜子与人不平行, 就可以颠倒上下.

实际上镜子并没有颠倒左右,而是颠倒前后

【65】

1,若是两个人,设A、B是黑帽子,第二次关灯就会有人打耳光。原因是A看到B第一次没打耳光,就知道B也一定看到了有带黑帽子的人,可A除了知道B带黑帽子外,其他人都是白帽子,就可推出他自己是带黑帽子的人!同理B也是这么想的,这样第二次熄灯会有两个耳光的声音。

2,如果是三个人,A,B,C. A第一次没打耳光,因为他看到B,C都是带黑帽子的;而且假设自己带的是白帽子,这样只有BC戴的是黑帽子;按照只有两个人带黑帽子的推论,第二次应该有人打耳光;可第二次却没有。。。于是他知道B和C一定看到了除BC之外的其他人带了黑帽子,于是他知道BC看到的那个人一定是他,所以第三次有三个人打了自己一个耳光!

【66】

把大圆剪断拉直。小圆绕大圆圆周一周,就变成从直线的一头滚至另一头。因为直线长就是大圆的周长,是小圆周长的2倍,所以小圆要滚动2圈。

但是现在小圆不是沿直线而是沿大圆滚动,小圆因此还同时作自转,当小圆沿大圆滚动1周回到原出发点时,小圆同时自转1周。当小圆在大圆内部滚动时自转的方向与滚动的转向相反,所以小圆自身转了1周。当小圆在大圆外部滚动时自转的方向与滚动的转向相同,所以小圆自身转了3周。

这一题非常有迷惑性,小圆在外部时其实是3圈,你可以拿个硬币试试可以把圆看成一根绳子,长绳是短绳的2倍长,假设长绳开始接口在最底下,短绳接口在长绳接口处,然后短绳开始顺时针绕,当短绳接口对着正左时,这时其实才绕了长绳的1/4,转了18 9度,所以绕一圈是274=363 。同理小圆在内部时是1圈。也可以套用下列公式: 两圆圆心距/转动者半径=转动者切另一圆时的自转数!!

【67】

4瓶,2 1 5 2 1 1=39, 这时还有一个空瓶子,先向店主借一个空瓶,换来一瓶汽水喝完后把空瓶还给店主。

【68】

一共3红4黑5白,第十个人不知道的话,可推出前9个人的所有可能情况:

红 黑 白

3 3 3

3 2 4

3 1 5

2 3 4

2 2 5

1 3 5

如果第九个人不知道的话,可推出前8个人的所有可能情况:

红 黑 白

1 2 5

1 3 4

2 1 5

2 2 4

2 3 3

3 1 4

3 2 3

由此类推可知,当推倒第六个人时,会发现他已经肯定知道他自己戴的是什么颜色的帽子了.

“有3顶黑帽子,2顶白帽子。让三个人从前到后站成一排,给他们每个人头上戴一顶帽子。每个人都看不见自己戴的帽子的颜色,却只能看见站在前面那些人的帽子颜色。(所以最后一个人可以看见前面两个人头上帽子的颜色,中间那个人看得见前面那个人的帽子颜色但看不见在他后面那个人的帽子颜色,而最前面那个人谁的帽子都看不见。现在从最后那个人开始,问他是不是知道自己戴的帽子颜色,如果他回答说不知道,就继续问他前面那个人。事实上他们三个戴的都是黑帽子,那么最前面那个人一定会知道自己戴的是黑帽子。为什么?”

答案是,最前面的那个人听见后面两个人都说了“不知道”,他假设自己戴的是白帽子,于是中间那个人就看见他戴的白帽子。那么中间那个人会作如下推理:“假设我戴了白帽子,那么最后那个人就会看见前面两顶白帽子,但总共只有两顶白帽子,他就应该明白他自己戴的是黑帽子,现在他说不知道,就说明我戴了白帽子这个假定是错的,所以我戴了黑帽子。”问题是中间那人也说不知道,所以最前面那个人知道自己戴白帽子的假定是错的,所以他推断出自己戴了黑帽子。

我们把这个问题推广成如下的形式:

“有若干种颜色的帽子,每种若干顶。假设有若干个人从前到后站成一排,给他们每个人头上戴一顶帽子。每个人都看不见自己戴的帽子的颜色,而且每个人都看得见在他前面所有人头上帽子的颜色,却看不见在他后面任何人头上帽子的颜色。现在从最后那个人开始,

问他是不是知道自己戴的帽子颜色,如果他回答说不知道,就继续问他前面那个人。一直往前问,那么一定有一个人知道自己所戴的帽子颜色。”

当然要假设一些条件:

1)首先,帽子的总数一定要大于人数,否则帽子都不够戴。

2)“有若干种颜色的帽子,每种若干顶,有若干人”这个信息是队列中所有人都事先知道的,而且所有人都知道所有人都知道此事,所有人都知道所有人都知道所有人都知道此事,等等等等。但在这个条件中的“若干”不一定非要具体一一给出数字来。

这个信息具体地可以是象上面经典的形式,列举出每种颜色帽子的数目“有3顶黑帽子,2顶白帽子,3个人”,也可以是“有红黄绿三种颜色的帽子各1顶2顶3顶,但具体不知道哪种颜色是几顶,有6个人”,甚至连具体人数也可以不知道,“有不知多少人排成一排,有黑白两种帽子,每种帽子的数目都比人数少1”,这时候那个排在最后的人并不知道自己排在最后——直到开始问他时发现在他回答前没有别人被问到,他才知道他在最后。在这个帖子接下去的部分当我出题的时候我将只写出“有若干种颜色的帽子,每种若干顶,有若干人”这个预设条件,因为这部分确定了,题目也就确定了。

3)剩下的没有戴在大家头上的帽子当然都被藏起来了,队伍里的人谁都不知道都剩下些什么帽子。

4)所有人都不是色盲,不但不是,而且只要两种颜色不同,他们就能分别出来。当然他们的视力也很好,能看到前方任意远的地方。他们极其聪明,逻辑推理是极好的。总而言之,只要理论上根据逻辑推导得出来,他们就一定推导得出来。相反地如果他们推不出自己头上帽子的颜色,任何人都不会试图去猜或者作弊偷看——不知为不知。

5)后面的人不能和前面的人说悄悄话或者打暗号。

当然,不是所有的预设条件都能给出一个合理的题目。比如有99顶黑帽子,99顶白帽子,2个人,无论怎么戴,都不可能有人知道自己头上帽子的颜色。另外,只要不是只有一种颜色的帽子,在只由一个人组成的队伍里,这个人也是不可能说出自己帽子的颜色的。

但是下面这几题是合理的题目:

1)3顶红帽子,4顶黑帽子,5顶白帽子,1个人。

2)3顶红帽子,4顶黑帽子,5顶白帽子,8个人。

3)n顶黑帽子,n-1顶白帽子,n个人(n>)。

4)1顶颜色1的帽子,2顶颜色2的帽子,……,99顶颜色99的帽子,1顶颜色1的帽子,共5个人。

5)有红黄绿三种颜色的帽子各1顶2顶3顶,但具体不知道哪种颜色是几顶,有6个人。

6)有不知多少人(至少两人)排成一排,有黑白两种帽子,每种帽子的数目都比人数少1。

大家可以先不看我下面的分析,试着做做这几题。

如果按照上面3顶黑帽2顶白帽时的推理方法去做,那么1个人就可以把我们累死,别说5个人了。但是3)中的n是个抽象的数,考虑一下怎么解决这个问题,对解决一般的问题大有好处。

假设现在n个人都已经戴好了帽子,问排在最后的那一个人他头上的帽子是什么颜色,什么时候他会回答“知道”?很显然,只有在他看见前面n-1个人都戴着白帽时才可能,因为这时所有的n-1顶白帽都已用光,在他自己的脑袋上只能顶着黑帽子,只要前面有一顶黑帽子,那么他就无法排除自己头上是黑帽子的可能——即使他看见前面所有人都是黑帽,他还是有可能戴着第n顶黑帽。

现在假设最后那个人的回答是“不知道”,那么轮到问倒数第二人。根据最后面那位的回答,他能推断出什么呢?如果他看见的都是白帽,那么他立刻可以推断出自己戴的是黑帽——要是他也戴着白帽,那么最后那人应该看见一片白帽,问到他时他就该回答“知道”了。但是如果倒数第二人看见前面至少有一顶黑帽,他就无法作出判断——他有可能戴着白帽,但是他前面的那些黑帽使得最后那人无法回答“知道”;他自然也有可能戴着黑帽。

这样的推理可以继续下去,但是我们已经看出了苗头。最后那个人可以回答“知道”当且仅当他看见的全是白帽,所以他回答“不知道”当且仅当他至少看见了一顶黑帽。这就是所有帽子颜色问题的关键!

如果最后一个人回答“不知道”,那么他至少看见了一顶黑帽,所以如果倒数第二人看见的都是白帽,那么最后那个人看见的至少一顶黑帽在哪里呢?不会在别处,只能在倒数第二人自己的头上。这样的推理继续下去,对于队列中的每一个人来说就成了:

“在我后面的所有人都看见了至少一顶黑帽,否则的话他们就会按照相同的判断断定自己戴的是黑帽,所以如果我看见前面的人戴的全是白帽的话,我头上一定戴着我身后那个人看见的那顶黑帽。”

我们知道最前面的那个人什么帽子都看不见,就不用说看见黑帽了,所以如果他身后的所有人都回答说“不知道”,那么按照上面的推理,他可以确定自己戴的是黑帽,因为他身后的人必定看见了一顶黑帽——只能是第一个人他自己头上的那顶。事实上很明显,第一个说出自己头上是什么颜色帽子的那个人,就是从队首数起的第一个戴黑帽子的人,也就是那个从队尾数起第一个看见前面所有人都戴白帽子的人。

这样的推理也许让人觉得有点循环论证的味道,因为上面那段推理中包含了“如果别人也使用相同的推理”这样的意思,在逻辑上这样的自指式命题有点危险。但是其实这里没有循环论证,这是类似数学归纳法的推理,每个人的推理都建立在他后面那些人的推理上,而对于最后一个人来说,他的身后没有人,所以他的推理不依赖于其他人的推理就可以成立,是归纳中的第一个推理。稍微思考一下,我们就可以把上面的论证改得适合于任何多种颜色的推论:

“如果我们可以从假设断定某种颜色的帽子一定会在队列中出现,从队尾数起第一个看不见这种颜色的帽子的人就立刻可以根据和此论证相同的论证来作出判断,他戴的是这种颜色的帽子。现在所有我身后的人都回答不知道,所以我身后的人也看见了此种颜色的帽子。如果在我前面我见不到此颜色的帽子,那么一定是我戴着这种颜色的帽子。”

当然第一个人的初始推理相当简单:“队列中一定有人戴这种颜色的帽子,现在我看不见前面有人戴这颜色的帽子,那它只能是戴在我的头上了。”

对于题1)事情就变得很明显,3顶红帽子,4顶黑帽子,5顶白帽子给1个人戴,队列中每种颜色至少都该有一顶,于是从队尾数起第一个看不见某种颜色的帽子的人就能够断定他自己戴着这种颜色的帽子,通过这点我们也可以看到,最多问到从队首数起的第三人时,就应该有人回答“知道”了,因为从队首数起的第三人最多只能看见两顶帽子,所以最多看见两种颜色,如果他后面的人都回答“不知道”,那么他前面一定有两种颜色的帽子,而他头上戴的一定是他看不见的那种颜色的帽子。

题2)也一样,3顶红帽子,4顶黑帽子,5顶白帽子给8个人戴,那么队列中一定至少有一顶白帽子,因为其它颜色加起来一共才7顶,所以队列中一定会有人回答“知道”。

题4)的规模大了一点,但是道理和2)完全一样。1种颜色的55顶帽子给5人戴,前面99种颜色的帽子数量是1 …… 99=495,所以队列中一定有第1种颜色的帽子(至少有5顶),所以如果自己身后的人都回答“不知道”,那么那个看不见颜色1帽子的人就可以断定自己戴着这种颜色的帽子。

至于5)、6)“有红黄绿三种颜色的帽子各1顶2顶3顶,但具体不知道哪种颜色是几顶,有6个人”以及“有不知多少人排成一排,有黑白两种帽子,每种帽子的数目都比人数少1”,原理完全相同,我就不具体分析了。

最后要指出的一点是,上面我们只是论证了,如果我们可以根据各种颜色帽子的数量和队列中的人数判断出在队列中至少有一顶某种颜色的帽子,那么一定有一人可以判断出自己头上的帽子的颜色。因为如果所有身后的人都回答“不知道”的话,那个从队尾数起第一个看不见这种颜色的帽子的人就可以判断自己戴了此颜色的帽子。但是这并不是说在询问中一定是由他来回答“知道”的,因为还可能有其他的方法来判断自己头上帽子的颜色。比如说在题2)中,如果队列如下:(箭头表示队列中人脸朝的方向)

白白黑黑黑黑红红红白→

那么在队尾第一人就立刻可以回答他头上的是白帽,因为他看见了所有的3顶红帽子和4顶黑帽子,能留给他自己戴的只能是白帽子了

【69】

拿出4个, 然后按照6的倍数和另外一人分别拿球. 即

另外一人拿1个, 我拿5个

另外一人拿2个, 我拿4个

另外一人拿3个, 我拿3个

另外一人拿4个, 我拿2个

另外一人拿5个, 我拿1个.

最终1个在我手上.

首先拿4个 别人拿n个你就拿6-n个

【7】

1英尺(ft)=.348米(m)

1磅(lb)=.454千克(kg)

通过实验得到撞破脑壳所需要的机械能是mgh=(3.454)9.8(2.348)=813.669(J)对于两只山羊撞击瞬间来说,比较重的那只仅仅是站在原地,只有较轻的山羊具有速度,而题目中暗示我们,两只羊仅一次碰撞致死。现在我们只需要求得碰撞瞬间轻山羊的瞬时速度就可以了,根据机械能守恒定律:mgh=1/2(m1v^2)可以得出速度。m1是轻山羊的重量。

【71】

7两倒入11两, 再用7两倒入11两装满, 7两中剩余3两, 倒出11两, 将3两倒入11两, 用7两两次倒入11两装满, 7两中剩余6两, 将11两倒出, 将6两倒入, 然后用7两倒入11两, 剩余2两. 于是得到.

11,–>4,7–>4,–>,4–>11,4–>8,7–>8,–>1,7–>1,–>,1–>11,1–>5,7–>5,–>,5–>11,5–>9,7–>9,–>2,7

【72】

需要4飞机.

假设需要三架飞机,编号为1,2,3.

三架同时起飞, 飞到1/8 圈处, 1号飞机,给2号,3号,飞机各加上1/8 圈的油, 刚好飞回基地,此时1号,2号满油,继续前飞;

飞到2/8 圈时候,2号飞机给1号飞机加油1/8圈油量,刚好飞回基地, 3号飞机满油,继续向前飞行, 到达6/8处无油;

此时重复2号和三号飞机的送油.3号飞机反方向飞行到1/6圈时, 加油1/6圈给给2号飞机, 2号飞机向前飞行X圈, 则3号飞机可向前继续送油, 1/6 –2X 圈. 此时3号刚好飞回, 2号满油.当X= 1/6-2X时候获得最大. X =1/18.

1/6 1/18= 2/ 9. 少于1/4. 所以不能完成.

类比推,当为4架时, 恰好满足条件.

【73】

排列如下所示.X代表点, O代表空格.

X O X

O X O

X X X

O X O

X O X

得到1条.

【74】

我要到你的国家去,请问怎么走?然后走向路人所指方向的相反方向.

【75】

只有两次

假设时针的角速度是ω(ω=π/6每小时),则分针的角速度为12ω,秒针的角速度为72ω。分针与时针再次重合的时间为t,则有12ωt-ωt=2π,t=12/11小时,换算成时分秒为1小时5分27.3秒,显然秒针不与时针分针重合,同样可以算出其它1次分针与时针重合时秒针都不能与它们重合。只有在正12点和点时才会重。

证明:将时针视为静止,考察分针,秒针对它的相对速度:

12个小时作为时间单位“1”,“圈/12小时”作为速度单位,

则分针速度为11,秒针速度为719。

由于11与719互质,记12小时/(11*719)为时间单位Δ,

则分针与时针重合当且仅当 t=719kΔ k∈Z

秒针与时针重合当且仅当 t=11jΔ j∈Z

而719与11的最小公倍数为11*719,所以若t=时三针重合,则下一次三针重合

必然在t=11719Δ时,即t=12点

你可能感兴趣的:(75道程序员逻辑思维面试题(含答案))