面试智力题

提灯过桥问题?   

题目:小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要1秒,小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要8秒,小明的爷爷要12秒。每次此桥最多可过两人,而过桥的速度依过桥最慢者而定,而且灯在点燃后30秒就会熄灭。问:小明一家如何过桥?

思路:先把时间最短的送过去,然后返回的时候以时间短的把灯送回来。

小明和小明弟弟过桥,需要花费3秒(小明弟弟慢,花3秒),计T1 = 3秒,总用时TC=3秒;
小明回来,需要花费1秒,记T2=1秒,总用时TC=4秒;
小明爷爷和小明妈妈一起过桥,需要花费12秒,记T3=12,总用时TC=16秒;
小明弟弟回来,需要花费3秒,记T4=3秒,总用时TC=19秒;
小明和小明爸爸一起过桥,需要花费6秒,记T5=6秒,总用时TC=25秒;
小明回来,需要花费1秒,记T6=1秒,总用时TC=26秒;
小明和小明弟弟一起过桥,需要花费3秒,记T7=3秒,总用时TC=29秒;

在地球什么地方能够,往南走1公里,然后往东走1公里,再往北走1公里能回到原点?

1.北极点,这个很好想。

2.南极点附近,但是这个附近有讲究。从当前点x出发往南1公里之后到达y,再往东,需要满足它往东一公里之后再次回到y。往东是绕着一个圆走,所以需要满足走整数倍的圆。即2k\pi=1,k=1,2,...无穷。

一块N x M的巧克力,最少掰多少次可以分成1 x 1的巧克力?

N*M-1次。自己模拟一下就知道了。

有两根不均匀分布的香,香烧完的时间是一个小时,你能用什么方法来确定一段15分钟的时间?

点燃一根的一端,另一根两端都点燃。所以两端都点的燃尽的时候刚刚过了30min。那此时把点燃一端的那根香另一端也点燃,燃尽的时间就是15min。

一个房间里面有三盏灯,外面有三个开关,只进去一次怎么确定哪个开关对应那盏灯?

打开两盏灯过一会,然后关掉一盏,房间里两盏是热的,可以通过暗灭对应到之前打开的开关,凉的是第三个开关。

一枚正反概率不一样的硬币,如何当一枚正常的硬币来用(正反概率相同)?

两次均为正面:p * p

第一次正面,第二次反面:p * (1 - p)

第一次反面,第二次正面:(1 - p) * p

两次均为反面:(1 - p) * (1 - p)

中间两种情况的概率是完全一样的。于是问题的解法就是连续抛两次硬币,如果两次得到的相同则重新抛两次;否则根据第一次(或第二次)的正面反面情况,就可以得到两个概率相等的事件

64匹马,8个赛道,找出跑得最快的4匹马,至少比赛几场?

这题一般人(比如我),都会觉得每8匹赛出4匹,然后再把4匹合成8匹来一遍,那就是15场。其实不然。请看大牛的分析:

还有一个比较难的是25匹马,5个赛道,选出最快的5匹:答案是至少8次,最多9次。

25匹马取前5名图解法_chen825919148的专栏-CSDN博客_25匹马5个赛道前5名

有10瓶药,每瓶有10粒药,其中有一瓶是变质的。好药每颗重1克,变质的药每颗比好药重0.1克。问怎样用天秤称一次找出变质的那瓶药?

先将这十瓶药由一到十按顺序排好,或在瓶上贴上数字,然后在一号瓶上拿出一粒药,二号拿两粒,如此类推,十号拿十粒。总共是五十五颗药。再将这些药一次称。多出的量,那个数字就代表哪个瓶,而那瓶药就是变质的药,比如称出的重量是五十五点二,那么第二瓶药就是变质的。

有八个大小相同的球,其中7个重量相等,有一个稍微重一点,如何用天平仅称两次就能确定哪个球偏重?

 第一次称的时候,天平两边各放3个球,剩余2个球。

 如果天平平衡,说明较轻的球在剩余的两个球中,第二次称的时候只需称剩余的这2个球即可。

 如果天平不平衡,从第一次称时相对较轻的那3个球中选2个做第二次称重。第二次称重时,如果天平平衡,则剩下的那个球就是较轻的;如果天平不平衡,较轻的球也就找到了。

如何用3升和5升桶量取4升水?

先把5升的桶装满水,倒进3升的桶中,再把3升桶中的水倒掉,然后把5升桶里剩余的水倒进3升桶中,最后把5升的桶再次装满水,倒进3升桶中,直到3升桶中装满书,此时5升桶中剩余4升水。

一个装了10L水的桶,一个7L的空桶,一个3L的空桶,怎样变成2个5L

这题比上面那题有难度一点。集体过程如下,你需要考虑凑齐5,5之前的状态,其实是要拼凑到8,2,0状态,然后你死命凑出2吧。

初始时为10,0,0。
第二步7,0,3。
然后7,3,0。
然后4,3,3。
然后4,6,0。
然后1,6,3。
然后1,7,2。
然后8,0,2。
然后8,2,0。
然后5,2,3。
然后5,5,0。

1楼到n楼的每层电梯门口都放着一颗钻石,钻石大小不一。你乘坐电梯从1楼到n楼,每层楼电梯门都会打开一次,只能拿一次钻石,问怎样才能拿到「最大」的一颗?

人都是贪婪的,总想着后面还有更大的钻石,这道题没有标准答案。参考答案:选择前五层楼都不拿,观察各层钻石的大小,做到心中有数。后面五个楼层再选择,选择大小接近前五层楼出现过最大钻石大小的钻石

七只老鼠,一百瓶药水,其中有一瓶是毒药,毒发时间为一天,使用一天时间检测出毒药?

100层楼2个鸡蛋

具体参考Google经典面试题《100层楼测试两个鸡蛋》剖析 - 知乎 (zhihu.com)

分析地很到位,假设第一次从k层开始丢鸡蛋,我们令f(x)为x层的最少尝试次数,那么

前面那个f(100-k)表示第一次鸡蛋没碎,我们需要从剩下的100-k层中找,所以最少的次数是f(100-k)。后面的k-1表示k层丢下的鸡蛋碎了,那么第二个鸡蛋只能从第一层慢慢往上找了。按常理来说,层数越高,那么尝试的次数肯定越多,所以我们需要f(100-k)与k-1之间的一个平衡。其实,如果当f(100-k)=k-1,就是这个平衡状态。所以有:

f(100)=max(f(100-k),k-1)+1  ==> f(100)=k那么:

f(100-k)=k-1 <== f(100-k)=max(f(100-k-k+1),k-2)+1

......   递推下去

当我们执行k次(因为f(100)的假设下最小就是k次)

f(100-k-(k-1)-...-(1))=...我们在k次的情况下,需要保证找的那些楼层能包含所有的100层,所以有;

100-k-(k-1)...-1<=0,也就是(1+k)*k/2>=100,所以得到整数k>=14,所以一开始从14层开始,然后往上找13层,再找12层...知道找到一层使鸡蛋碎掉,然后从上一个没碎的地方开始慢慢往上找即可。

有10个石头,你和对手两人轮流拿,每人每次可以拿1-2个,最后一个拿的人算输,有什么必赢的方案 假设自己先拿,从只有1个石头的情况开始考虑:

1 输 必须拿走
2 赢 拿一个
3 赢 拿两个
4 输 我无论拿一个还是两个,都剩3个或2个,该对方拿,此时他必赢
5 赢 拿一个
6 赢 拿两个
7 输 我无论拿一个还是两个,都剩6个或5个,该对方拿,此时他必赢
8 赢 拿一个
9 赢 拿两个
10 输 我无论拿一个还是两个,都剩9个或8个,该对方拿,此时他必赢

规律:硬币的数量,对3求余后余1时 3n+1,则此时谁先取,谁必输。

两个人抛硬币吃蛋糕,正面的能吃到,问先抛的人能吃到蛋糕的概率

咋一看像0.5,但是实际上并不是。

第一次抛,先抛的人吃到的概率是0.5。

第二次另一个人抛,我们想要他吃不到,由于都到了第二次,则第一个肯定是反面,那么第二个人吃不到的概率为0.5*0.5。

第三次抛的时候,第一个得吃到,则概率为0.5*0.5*0.5。

依次类推,发现先抛的能吃到的概率为0.5+0.5^3+0.5^5+...=0.5*(1-0.25^n)/1-(0.25),最终的极限为2/3。

连续的三个大于6的整数,其中两个是质数,证明第三个可以被6整除。

首先,由于连续三个数,而且两个是质数,说明那两个一定是边上的两个,而且是奇数(不然被2整除就不是质数了),那么中间那个就能被2整除。同时,由于连续三个数中一定有一个能被3整除,而边上两个是不可能的,因为必须为质数,所以只能是中间那个。综上,中间那个既要被2整除,又要被3整除,那就是被6整除。

金条问题

有个商人雇用了一位手艺高超的工匠了为他做一个精致产品,工作一星期七天的代价是一条金条。商人手头上有一条金条,刚好有可以付工匠一星期的工钱。但工匠要求工钱要按每天来付。虽然他并不急着用钱,每天有钱进账,老人心里总是踏实一些。但商人家中有个规矩,金条每星期只能切二刀。后来商人想出以了个切割金条的办法,满足了工匠的要求。你知道商人是怎么切割金条才能满足工匠的吗?
其实是最基本的二进制思想,切成1,2,4的比例即可。

假钱问题

老王30买了双鞋,35卖,客人花100买,老王没零钱于是向老李换了100.补给客人后,客人走远后老李突然说是假钱,于是老王补偿给了老李,问老王一共亏了多少?

第一个角度:钞票守恒定理。客人拿0元(价钱)获得了价值30的鞋子与和65的钱,而邻居其实是不赚不亏的。所以老板亏的就是骗子拿走的那些,共95元。

第二个角度:把收到的价钱当成0。老板的钱就是-30+0+100-0-65-100=-95。-30是鞋子的进价。+0是收假钱,+100是换的100,-0是再换的时候用假钱换了100,所以实际上没有付出的代价,-65是找零,-100是还的真钱。

最后就是亏了95。

30枚面值不全相同的硬币摆成一排,甲、乙两个人轮流选择这排硬币的其中一端,并取走最外边的那枚硬币。如果你先取硬币,能保证得到的钱不会比对手少吗?

这题题意容易让人误解,其实是一人取走一个,然后另一个人过来选择剩余硬币的其中一端取,所以可以让后取的人只能取奇数或者偶数位置的硬币。那么我们只要知道所有奇数面额加起来多还是偶数面额加起来多就可以了。

有三个人去住旅馆,住三间房,每一间房$10元,于是他们一共付给老板$30,第二天,老板觉得三间房只需要$25元就够了于是叫小弟退回$5给三位客人,谁知小弟贪心,只退回每人$1,自己偷偷拿了$2,这样一来便等于那三位客人每人各花了九元,于是三个人一共花了$27,再加上小弟独吞了不$2,总共是$29。可是当初他们三个人一共付出$30那么还有$1呢?

不应该这么算,退回3块钱,相当于他们付了27,而老板赚了25,小弟偷拿两块钱,是吻合的,而30是之前付的。所以其实30的分布为:客人3块钱,老板25,小弟2块。

有7克、2克砝码各一个,天平一只,如何只用这些物品五次内将140克的盐分成50、90克各一份?

第一次:先分成70和70。第二次:通过7和2砝码将70分成9和61。第三次:通过9克盐和2砝码将61分成50和11。

有个岛上住着一群人,有一天来了个游客,定了一条奇怪的规矩:所有蓝眼睛的人都必须尽快离开这个岛。每晚8点会有一个航班离岛。每个人都看得见别人眼睛的颜色,但不知道自己的(别人也不可以告知)。此外,他们不知道岛上到底有多少人是蓝眼睛的,只知道至少有一个人的眼睛是蓝色的。所有蓝眼睛的人要花几天才能离开这个岛?

有多少个蓝眼睛的人就会花多少天。

c=1。假设岛上所有人都是聪明的,蓝眼睛的人四处观察之后,发现没有人是蓝眼睛的。但他知道至少有一人是蓝眼睛的,于是就能推导出自己一定是蓝眼睛的。因此,他会搭乘当晚的飞机离开。

c=2。两个蓝眼睛的人看到对方,并不确定c是1还是2,但是由上一种情况,他们知道,如果c = 1,那个蓝眼睛的人第一晚就会离岛。因此,发现另一个蓝眼睛的人仍在岛上,他一定能推断出c = 2,也就意味着他自己也是蓝眼睛的。于是,两个蓝眼睛的人都会在第二晚离岛。

c>2。逐步提高c时,我们可以看出上述逻辑仍旧适用。如果c = 3,那么,这三个人会立即意识到有2到3人是蓝眼睛的。如果有两人是蓝眼睛的,那么这两人会在第二晚离岛。因此,如果过了第二晚另外两人还在岛上,每个蓝眼睛的人都能推断出c = 3,因此这三人都有蓝眼睛。他们会在第三晚离岛。

不论c为什么值,都可以套用这个模式。所以,如果有c人是蓝眼睛的,则所有蓝眼睛的人要用c晚才能离岛,且都在同一晚离开。

有50家人家,每家一条狗。有一天警察通知,50条狗当中有病狗,行为和正常狗不一样。每人只能通过观察别人家的狗来判断自己家的狗是否生病,而不能看自己家的狗,如果判断出自己家的狗病了,就必须当天一枪打死自己家的狗。结果,第一天没有枪声,第二天没有枪声,第三天开始一阵枪响,问:一共死了几条狗?

3条,与蓝眼睛问题一样的思路。

一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每个人都能看到其他人帽子的颜色,却看不到自己的。主持人先让大家看看别人头上戴的是什么帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍然鸦雀无声。一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。问有多少人戴着黑帽子?

答案:有三个人戴黑帽。与蓝眼睛问题一样。

一个家庭有两个小孩,其中有一个是女孩,问另一个也是女孩的概率(假定生男生女的概率一样)。

1/3。样本空间为(男男)(女女)(男女)(女男)。
A=(已知其中一个是女孩)=)(女女)(男女)(女男);
B=(另一个也是女孩)=(女女);
于是P(B/A)=P(AB)/P(A)=(1/4)/(3/4)=1/3。

你有两个罐子,每个罐子各有若干红色弹球和蓝色弹球,两个罐子共有50个红色弹球,50个蓝色弹球,随机选出一个罐子,随机从中选取出一个弹球,要使取出的是红球的概率最大,一开始两个罐子应放几个红球,几个蓝球?在你的计划中,得到红球的准确几率是多少?

一个罐子放1红,一个罐子放49红和50蓝,这样得到红球的概率接近3/4。0.5*1+0.5*49/99~=0.75;

54张扑克牌,其中有十张是翻过来的。现在把你的眼睛蒙上,让你把扑克牌分成两叠(两叠的多少可以不一样)。要求在两叠中翻过来的扑克牌是相等的。请问该怎么做?

第一步,你在这54张牌中任意取出10张,现在,扑克牌分成了两叠。44张和10张;第二步,44张那叠不动,将10张这叠每张都翻过来,便得到了符合条件的两叠牌。

填数字

0 1 2 3 4 5 6 7 8 9
_ _ _ _ _ _ _ _ _ _ 在横线上填写数字,使之符合要求。
要求如下:对应的数字下填入的数,代表上面的数在下面出现的次数,比如3下面是1,代表3要在下面出现一次。

正确答案是: 6 2 1 0 0 0 1 0 0 0

记住两点:1.第二行所有数字之和为10。因为一共10个空,数字之和只能是10。2.每一列相乘之和为10。因为第二行所有数字之和为10,而这个所有数字之和就是数值乘以个数。

有了上面两点之后,你就可以把答案背下来了。。。

1,11,21,1211,111221,下一个数是什么?

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

教授选出两个从2到9的数,把它们的和告诉学生甲,把它们的积告诉学生乙,让他们轮流猜这两个数, 甲说:“我猜不出”, 乙说:“我猜不出”, 甲说:“我猜到了”, 乙说:“我也猜到了”, 问这两个数是多少?

首先两学生都说猜不出来,说明不管是和还是积,都有重复的,通过2-9的排列组合,最终找出那些有可能的组合:

(4,9)与(6,6)

(3,4)与(2,6)

(4,4)与(2,8)

(2,9)与(3,6)

(3,8)与(4,6)

和为7:(3,4)

和为8:(2,6),(4,4)

和为9:(3,6)

和为10:(2,8),(4,6)

和为11:(2,9),(3,8)

和为12:(6,6)

和为13:(4,9)

所有的候选答案都来自于上面这10个选项:

假设和为7:第三次的时候甲说知道了,因为只有(3,4)的组合能够满足前两句不知道。此时,因为甲猜出了答案,所以肯定是(3,4),也就是乙拿到的积是12。积为12的且满足前两句话的只有(3,4)和(2,6)。因为第四句说乙得出了答案,所以要将(2,6)排除掉。那从乙的角度看,如果答案是(2,6),此时和为8,在第三句话的时候,甲不能得出最终答案,因为和为8且能满足前两句的有两个候选答案。因此,乙能够排除掉(2,6)。所以和为7的情况下,只有(3,4)能满足四句话。

根据上面的分析,其实可以把和有多余一种情况的选项都去掉,所以接下来考虑和为9,12,13。

假设和为9:满足前三句只能是(3,6),得到最终的积为18。而积为18有(2,9),(3,6)两种情况。同样,如果是(2,9),第三句是无法确定结果的。所以只能选(3,6)

和为12:最终得到的积为36。而积为36的情况有(6,6)以及(4,9)。但是此时,如果是(4,9)的情况,第三句话的时候,甲还是能够确定答案,那么这个时候,乙拿到了36,但是不管是(6,6)还是(4,9),前三句话都满足,他就无法分析出到底是(6,6)还是(4,9),所以无法确定答案。

和为13:与和为12的情况一样。

最终,可以发现(3,4)和(3,6)满足最终的结果。

3个箱子里面放了 苹果,梨子,苹果加梨子,标签全错误,只能选择查看一箱的水果来改正所有标签。

很简单,假设标签是1,2,3。随便看一箱,就看第一箱好了,如果第一箱真实标签是2,那么我们关注第三箱。由于标签是全错的,所以第三箱不能是标签3,同时,它也不能是标签2,因为标签2被第一箱承包了,所以它只能是标签1。两箱的标签都知道了,剩下一个标签就是第三箱的咯。看其他的分析是一样的。

某种药方要求非常严格,你每天需要同时服用A、B两种药片各一颗,不能多也不能少。这种药非常贵,你不希望有任何一点的浪费。一天,你打开装药片A的药瓶,倒出一粒药片放在手心;然后打开另一个药瓶,但不小心倒出了两粒药片。现在,你手心上有一颗药片A,两颗药片B,并且你无法区别哪个是A,哪个是B。你如何才能严格遵循药方服用药片,并且不能有任何的浪费?

把手上的三片药各自切成两半,分成两堆摆放。再取出一粒药片A,也把它切成两半,然后在每一堆里加上半片的A。现在,每一堆药片恰好包含两个半片的A和两个半片的B。一天服用其中一堆即可。

如何用一枚硬币等概率地产生一个1到3之间的随机整数?如果这枚硬币是不公正的呢?

当硬币概率相等的时候,很简单,抛两次,把正正情况去掉,剩余的情况概率都是0.25,代表1-3。

当硬币的正反概率不相等时:我们可以先抛两次,获得一个正反与反正的概率是一样的,那样就相当于获得了一个公平的硬币,把两次看成一个整体,再抛两次呗。不就得到一种完美的解决方案。不过这样做重抛的概率有点大的。所以来了个更妙的,抛3次,正正反,正反正,反正正可代表1-3,其余重抛。

三个坐标求三角形面积

注意:这里的三个点有顺序的,(x1,y1)为左边的点,(x2,y2)是右边的,(x3,y3)是上面的点。我感觉这个方法不好。

还是使用海伦公式:已知三边长a,b,c,那么:

p=(a+b+c)/2.0

S=sqrt(p*(p-a)*(p-b)*(p-c))。

生成随机数问题:给定生成1到5的随机数Rand5(),如何得到生成1到7的随机数函数Rand7()

思路:由大的生成小的容易,比如由Rand7()生成Rand5(),所以我们先构造一个大于7的随机数生成函数。
记住下面这个式子:

RandNN= N( RandN()-1 ) + RandN() ;// 生成1到N^2之间的随机数
可以看作是在数轴上撒豆子。N是跨度/步长,是RandN()生成的数的范围长度,RandN()-1的目的是生成0到N-1的数,是跳数。后面+RandN()的目的是填满中间的空隙。

比如Rand25= 5( Rand5()-1 ) + Rand5()可以生成1到25之间的随机数。我们可以只要1到21(3*7)之间的数字,所以可以这么写:

int rand7(){
  int x=INT_MAX;
  while(x>21){
    x=5*(rand5()-1)+rand5();
  }
  return x%7+1;
}

放n只蚂蚁在一条树枝上,蚂蚁与蚂蚁之间碰到就各自往反方向走,问总距离或者时间。

碰到就当没发生,继续走,相当于碰到的两个蚂蚁交换了一下身体。其实就是每个蚂蚁从当前位置一直走直到停止的总距离或者时间。

在24小时里面时针分针秒针可以重合几次

在0点到12点之间共有12次,每个阶段时针都会与分针有一次重合,但是11点到12点与0点时的是一样的,因此,减少一个,共11个,因此,在0点到24点之间,时针和分针共重合次数是22次。

三人三鬼过河问题,当鬼的数量比人多的时候,鬼就会吃了人,过河只有一条船,船只能坐俩人,问怎么过河

先两鬼过去。在一鬼回来。对面有一鬼。这边有三人两鬼。

再两鬼过去。在一鬼回来。对面有两鬼。

这边有三人一鬼。 再两人过去。一人一鬼回来。

对面一人一鬼。这边两人两鬼。

最后两人过去。一鬼回来。

对面三人。这边三鬼。

剩下的就三个鬼二个过去一个回来在接另外个就OK了。

有500只老虎,1只羊,一片草原。老虎和羊,都可以吃草活着,对,这个题中的老虎可以吃草。老虎呢,也能吃羊,不允许很多只老虎一起吃羊,只允许一只老虎吃一只羊,并且,吃完羊之后,这个老虎就会变成羊。那么问,老虎会不会吃羊? 提示:老虎很聪明,每只老虎都很聪明。

假设是一只老虎一只羊,老虎肯定会吃羊

假设是2虎1羊,如果某只老虎吃了羊,则它自己也会被吃掉,所以不吃

假设3虎1羊,如果某只老虎吃了羊,就变成了上面的情况,其他老虎都不敢吃,所以这只羊可吃

...

一直推理,找规律就是,奇数的老虎吃,偶数的老虎不吃。

100个奴隶猜帽子颜色

一百个奴隶站成一纵列,每人头上随机带上黑色或白色的帽子,各人不知道自己帽子的颜色,但是能看见自己前面所有人帽子的颜色。然后从最后一个奴隶开始,每人只能用同一种声调和音量说一个字:”黑”或”白”,如果说中了自己帽子的颜色,就存活,说错了就拉出去斩了,说的参考回答所有奴隶都能听见。 是否说对,其他奴隶不知道。在这之前,所有奴隶可以聚在一起商量策略,问如果奴隶都足够聪明而且反应足够快,100个人最大存活率是多少? 

参考回答:这是一道经典推理题 

1、最后一个人如果看到奇数顶黑帽子报“黑”否则报“白”,他可能死 

2、其他人记住这个值(实际是黑帽奇偶数),在此之后当再听到黑时,黑帽数量减一 

3、从倒数第二人开始,就有两个信息:记住的值与看到的值,相同报“白”,不同报“黑” 。99人能100%存活,1人50%能活 。

另外,此题还有变种:每个奴隶只能看见前面一个人帽子颜色又能最多存活多少人? 

参考回答:增加限制条件后,上面的方法就失效了,此时只能约定偶数位奴隶说他前一个人的帽子颜色,奇数奴隶获取信息100%存活,偶数奴隶50几率存活。

小猴子搬香蕉

一个小猴子边上有100根香蕉,它要走过50米才能到家,每次它最多搬50根香蕉,(多了就被压死
了),它每走 1米就要吃掉一根,请问它最多能把多少根香蕉搬到家里?

本题关键点在于:猴子搬箱子的过程其实分为两个阶段,第一阶段:来回搬,当香蕉数目大于50根时,猴子每搬一米需要吃掉三根香蕉。第二阶段:香蕉数《=50,直接搬回去。每走一米吃掉1根。 

 我们分析第一阶段:假如把100根香蕉分为两箱。一箱50根。 
第一步,把A箱搬一米,吃一根。 第二步,往回走一米,吃一根。 第三步,把B箱搬一米,吃一根。 这样,把所有香蕉搬走一米需要吃掉三根香蕉。 

这样走到第几米的时候,香蕉数刚好小于50呢? 

100-(n*3)<50 && 100-(n-1*3)>50 

走到16米的时候,吃掉48根香蕉,剩52根香蕉。这步很有意思,它可以直接搬50往前走,也可以再来回搬一次,但结果都是一样的。

到17米的时候,猴子还有49根香蕉。这时猴子就轻松啦,直接背着走就行。 

第二阶段: 走一米吃一根。 把剩下的50-17=33米走完。还剩49-33=16根香蕉。 

N个强盗分配M个金币,求方案使得自己分配最多

5个海盗抢到了100枚金币,每一颗都一样的大小和价值。  他们决定这么分:  

1.抽签决定自己的号码(1,2,3,4,5)    

2.首先,由1号提出分配方案,然后大家5人进行表决,当    半数以上的人同意时(    不包括半数,这是重点),按照他的提案进行分配,否则将被扔入大海喂鲨鱼。    

3.如果1号死后,再由2号提出分配方案,然后大家4人进行表决,当且仅当半超过半数的人同意时,按照他的提案进行分配,否则将被扔入大海喂鲨鱼。    

4.依次类推......    

假设每一位海盗都足够聪明,并且利益至上,能多分一枚金币绝不少分,那么1号海盗该怎么分金币才能使自己分到最多的金币呢? 

从后向前推,如果1至3号强盗都喂了鲨鱼,只剩4号和5号的话,5号一定投反对票让4号喂鲨鱼,以独吞全部金币。所以,4号惟有支持3号才能保命。 

3号知道这一点,就会提出“100,0,0”的分配方案,对4号、5号一毛不拔而将全部金币归为已有,因为他知道4号一无所获但还是会投赞成票,再加上自己一票,他的方案即可通过。 

不过,2号推知3号的方案,就会提出“98,0,1,1”的方案,即放弃3号,而给予4号和5号各一枚金币。由于该方案对于4号和5号来说比在3号分配时更为有利,他们将支持他而不希望他出局而由3号来分配。这样,2号将拿走98枚金币。

同样,2号的方案也会被1号所洞悉,1号并将提出(97,0,1,2,0)或(97,0,1,0,2)的方案,即放弃2号,而给3号一枚金币,同时给4号(或5号)2枚金币。由于1号的这一方案对于3号和4号(或5号)来说,相比2号分配时更优,他们将投1号的赞成票,再加上1号自己的票,1号的方案可获通过,97枚金币可轻松落入囊中。这无疑是1号能够获取最大收益的方案了!参考回答是:1号强盗分给3号1枚金币,分给4号或5号强盗2枚,自己独得97枚。分配方案可写成(97,0,1,2,0)或(97,0,1,0,2)。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值