Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2120385
  • 博文数量: 249
  • 博客积分: 1305
  • 博客等级: 军士长
  • 技术积分: 4733
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-17 10:37
个人简介

不懂的东西还有很多,随着不断的学习,不懂的东西更多,无法消灭更多不懂的东西,那就不断的充实自己吧。 欢迎关注微信公众号:菜鸟的机器学习

文章分类

全部博文(249)

文章存档

2015年(1)

2014年(4)

2013年(208)

2012年(35)

2011年(1)

分类: C/C++

2013-09-04 16:54:51


1、有1000桶酒,其中一桶有毒。而一旦吃了,毒性会在一周内发生。现在我们用小老鼠做实验,要在1周内找出那桶毒酒,问最少需要多少老鼠?
【答案】思路
    10只老鼠按顺序排好每桶酒按照编号转换成二进制,给相应位置上是1的老鼠喝。最后按死掉的老鼠是哪几只,然后排成二进制,再转成十进制就是第几桶酒。
    比如:
    第70桶酒,70转换成二进制就是0001000110,那么就给第四、八、九只老鼠喝。如果最后死掉第三、七、八只老鼠,那么就是0010001100,转换成十进制就是140,即140桶酒有毒。

2、有一堆1万个石头和1万个木头,对于每个石头都有1个木头和它重量一样,把配对的石头和木头找出来。
【答案】思路
    (1)可以对木头和石头分别排序,然后一一对应配对;
    (2)选一个石头,在木头中寻找配对,依次类推;
    (3)结合以上两个办法,对木头排序,然后取一个石头,匹配对应木头(木头已排序,不需要搜索直接配对);
    排序方法如下:
    把木头扔到水里,根据吃水深度排序;把石头从等高的足够光滑的斜坡滑下,根据水平滑动距离排序,然后二者一一对应。

3、多人排成一个队列,我们认为从低到高是正确的序列,但是总有部分人不遵守秩序。
    如果说,前面的人比后面的人高(两人身高一样认为是合适的),那么我们就认为这两个人是一对“捣乱分子”,比如说,现在存在一个序列:
    176, 178, 180, 170, 171
    这些捣乱分子对为:<176, 170>, <176, 171>, <178, 170>, <178, 171>, <180, 170>, <180, 171>, 
    那么,现在给出一个整型序列,请找出这些捣乱分子对的个数(仅给出捣乱分子对的数目即可,不用具体的对)。
【答案】思路
    求逆序对。

4、烧一根不均匀的绳,从头烧到尾总共需要1个小时。
    现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?
【答案】思路
    a绳从两头烧,同时b绳从一头烧,当a绳烧尽时,灭掉b绳,同时c绳从一头烧,在c绳烧尽时,b绳从两头烧,结束时即为1小时15分钟。

5、你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻?
【答案】思路
    4个,抽屉原理。

6、如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?
【答案】思路
    (1)用5升桶满桶,倒入3升桶中,倒满后大桶里剩2升;
    (2)把3升桶倒空,把那2升倒入3升桶中;
    (3)用5升桶满桶再向3升里倒,倒入一升就满,大桶里剩下的是4 升。

7、一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的。诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,
    但不知道应该走哪条路,需要问这两个人。请问应该怎么问?
【答案】思路
    问“你的国家怎么走?” 他们都会指向诚实国
    或
    问哪条路不到你的国家, 他们都会指向说谎国

8、12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。
【答案】思路
    分三组:每组四个,第一组编号1-4,第二组5-8,第三组9-12. 
    第一次称:天平左边放第一组,右边放第二组。 
    A 第一种可能:平衡。则不同的在第三组。 
    接下来可以在左边放第9、10、11号,右边放1、2、3号三个正常的。 
        a.如果平衡,则12号是不同的; 
        b.如果左重右轻,则不同的在9、10、11号中,而且比正常球重。再称一次:9放左边,10放右边,如果平衡,则11号是不同的;如果左重右轻,则9号是不同的,如果右重左轻,则10号是不同的。 
        c.如果左轻右重,道理同b 
    
    B 第二种可能:左重右轻,则不同的在1-8号中,但不知比正常的轻还是重。 

    第二次称:左边放1、2、5号,右边放6、9、3号。 
        a.如果平衡。则不同的在4、7、8中。可以称第三次:左边放4、7,右边放9、10。如果平衡,则8是不同;如果左重右轻,则4是不同;如果左轻右重,则7是不同。 
        b.仍然左重右轻。则不同的在位置没有改变的1、2、6中。可以称第三次:左边放1、6,右边放9、10。如果平衡,则2是不同; 如果左重右轻,则1是不同;如果左轻右重,则6是不同。 
        c:左轻右重。则不同的在5、3、中,因为只有它们改变了原来的位置。可以称第三次:左放5,3,右放9,10。如果左轻右重,则5是不同,如果左重右轻,则3是不同。 

    C 第三种可能:左轻右重,道理同B 
    至此,不论发生任何情况,称三次都可以找出不同,而且知道比正常的轻了还是重了。

    那如果是13个小球呢?
    解析:
    13个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球?

    4--4称一次,如果平衡,就在另5个中,拿3个正常的与5个中的三个对比,如果相等,在剩余两个中,拿正常的一个与剩余2个中一个对比,出结果,如果上次,3v3不相等,那么知道到球是轻还是重,取不正常的3个中的2个1v1,得结果。

    如果 4v4不相等

    取正常的(5个中取)3个放入左天平,把左天平3个放入右天平,右天平取出3个,

    如果相等,必在从右天平取出的3个中,且知是重还是轻,从中取2,进行1v1得结果,

    如果不相等,天平的偏重方向未发生改变,说明必在 4v4时未被移动的两个球,左右一个,取一个正常的与其中一个对比得结果

    如果不相等,天平偏重发生改变,必在从左天平移动到右天平那三个球中,且知球的是偏重还是篇轻,去其中2个1v1得结果

    不会超过3次,不管哪种情况


9、在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?
【答案】思路
    这很明显,1:05之后有一次,2:10之后有一次,3:15之后有一次,4:20之后有一次,5:25之后有一次,6:30之后有一次,7:35之后有一次,8:40之后有一次,9:45之后有一次,10:50之后有一次,12:00整有一次。24小时之中总共22次。
    而且,相邻两次重合之间所需时间相同,即12/11小时。准确说都分别是0点,12/11点,24/11点,36/11点,48/11点,60/11点,72/11点,84/11点,96/11点,108/11点,120/11点,12点,144/11点,156/11点,168/11点,180/11点,192/11点,204/11点,216/11点,228/11点,240/11点,252/11点。
    有趣的是这11个点,正好是圆内接正11边形,其中一个顶点在12点处。


10、五个海盗抢到了100颗宝石,每一颗都一样大小和价值连城。他们决定这么分: 抽签决定自己的号码(1、2、3、4、5) 
    首先,由1号提出分配方案,然后大家表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔进大海喂鲨鱼 。
    如果1号死后,再由2号提出分配方案,然后剩下的4人进行表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔入大海喂鲨鱼。
    依此类推 
    条件:每个海盗都是很聪明的人,都能很理智地做出判断,从而做出选择。
    问题:第一个海盗提出怎样的分配方案才能使自己的收益最大化?
【答案】思路
    

11、一道关于飞机加油的问题,已知: 
    每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有加油机)一箱油可供一架飞机绕地球飞半圈, 
    问题:
    为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?
    (所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场) 
【答案】思路
    至少需要出动5 架飞机。思路是这样的,一架飞机要想完成绕地球一周的飞行,至少需要别的飞机给它提供1 箱油。最划算的办法显然是,派飞机和它结伴飞行前四分之一周以及后四分之一周,(因为这两段路程距离基地近所花代价小。)由它独立飞行中间的半程。必须保证两个加油点,前四分之一处,加满,后四分之一点,及时补充。那么必须有两架飞机与目标机结伴飞行四分之一周,这两架飞机需要做折返飞行,正好花费2 箱油。所以补充油的任务实际上该由另外两架飞机完成。这两架飞机飞八分之一周,做折返飞,正好富余1 箱油。因此,5 架飞机刚好完成任务。到了此时,问题只考虑了一半。能够提供多少油并不意味着就能够全部接受,受到结伴飞行的距离,即腾出的油箱空间所限制。而以下做法正好可以满足此条件。
    3 架飞机同时从机场出发,飞行八分之一周,各耗油四分之一。此时某架飞机给其余两架补满油,自己返回基地。另一机和目标机结伴,飞至四分之一周,给目标机补满油,自己返回。
    ==飞到1/4还想给别人加油呢?自己跑回来刚刚够了。
    目标机独自飞行半周,与从基地反向出发的一机相遇,2 机将油平分,飞至最后八分之一处,与从基地反向出发的另一机相遇,各分四分之一油,返回。


    若发现什么问题,请及时指出,很多答案都是来源于网络,在这里感谢各位。
    
阅读(2240) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

xuesheng592017-09-26 11:29:53

最后飞机加油是不是三个飞机就行了:假设一个飞机满圈需要8个油,则一次性可加满4个油。
1)飞机ABC用时飞,在消耗一个油以后,C将2个油均分到AB,正好留一个油返程,AB此时均有四个油,在消耗一个油以后,B再给A一个油,留俩个油返程,此时A有四个油
2)A到达半圈后,BC同时从起点反向飞,消耗1个油后C返回,B承载4个油,B到大3/4处,有三个油,给A一个油,返程,C在回去后立马慢油反向起飞,消耗一个油后遇AB,补给A一个油后集体返程

梦醒潇湘love2013-11-14 20:07:31

sf116:在达内面试遇见了用烧绳子计算时间的问题。

这些题目如果以前没有见过类似的,在面试那么紧张的过程中,很难想全面

回复 | 举报

sf1162013-11-13 13:47:05

在达内面试遇见了用烧绳子计算时间的问题。