您的位置:首页 > 职场人生

关于程序员面试时的智力题集锦

2014-03-23 18:21 162 查看
1. 三个人(n个人)分一张大饼,怎样分最公平?

分饼的公平原理:

拿一把长刀,在饼上慢慢移动,三个人中如果有一个人说:“够了”,刀切下去。切下的那块就归说“够了”的那个人。然后刀继续在饼上慢慢移动,剩下的两个人中,谁先说“够了”,切下的那块就归那个人,剩下的最后那块就归一直没有开口的那个人。

这个分饼方法违反了我们的常理,因为这种方法分出来的结果不可能在重量上一样。但三个人中谁能说这种方法不公平吗?对于第一个说“够了”的人,他无法抱怨他的那块太小(如果真的太小的话),因为是他自己认为那块已经够了,没有人强迫他说“够了”。第二个人无法抱怨他的那块太小,因为他有权利在第一个人前说“够了”但他没说,他同样有权利在第二次不说“够了”但他说了。第三个人更无法抱怨他的那块太小,因为他不开口就意味着他认为前面的两块不如剩下的大。三个人得到的饼明显不一样大,但每一个人都无法抱怨不公平,所以这个分法是最公平的分法!有人还能想出更加“公平”的分法吗?

这个奇怪的分饼方法就是自由市场经济的基本原理(我管它叫分饼原理)。在这个分饼原理中我们能看到几样重要概念及原则呢?首先我们看看公平概念。什么是公平?一说公平,人们往往想到相等。数量相等、重量相等,质量相等,面积相等,体积相等,味道相等,分子数相等,…你还能想到几种相等来?不但相等是一个极其难以衡量的概念,更重要的是相等不等于公平。如你我一块办一个软件公司,我有十几年的软件管理,开发经验,你没有经验但有钱。你说咱们俩之间应该怎么个公平法?这时咱们俩开始进行实力较量。我的实力是;如果我不和你合作,我是否能找到另一个人合作,那个人将给我多少股份。你的实力是;如果你不和我合作,你的钱是否能找到其他挣钱机会,那个机会的回报率有多大。如果你的实力大于我的实力,你将得到超过50%的股份,否则我将得到超过50%的股份。现在我们在回到我们开始的问题,什么是公平?公平就是竞争的参与者本人同意他得到的利益是他“应该”得到的。公平与相等没有任何必然联系,它和竞争的参与者本人的“认可”是等同的。在这种概念下,我们只有“合同”上的公平,而没有客观的公平,我们一般不愿意接受别人为自己“决断”的“公平”。

其次我们再看看自由原则。在分饼过程中,每一个人必须是自由人。如果一个人的脑袋后面顶着一把枪,嘴已经不属于他了,这种分法就不公平了。如果一个人的嘴被夹住了,说不出话来,这种分法就不公平了。如果一个人的眼睛被封住了,看不到刀移到哪儿了,这种分法就不公平了。所以,为了保证公平,每一个竞争参与者必须是自由人,他们的基本权利不容侵犯。换成更正规的词汇;人权不能被侵犯,否则没有公平可谈。

接下来我们再看看那把刀。首先,那把刀必须以一个事先说好的速度恒速慢慢移动,不能时而快、时而慢。这个“事先说好的速度”就是我们生活中的法律,那个“不能时而快、时而慢”就是执法,司法的一贯性。这就是法治社会的基本特征。第二,这把刀不能由三个分饼的人中任何一个人掌握,否则这个掌刀的人为了他的自身利益必然打破那个“事先说好的速度”;这就是说掌刀者不能参与分饼,换句我们生活中的话;执法,司法者不能参与社会经济活动。一旦执法,司法者参与社会经济活动,法律必然将被人性破坏,社会必然走向执法、司法随心所欲的人治社会。

到此,我在这个“奇怪”的分饼例子中看到三个大道理;公平原则,保护人权,及法治社会的前提条件。

*****************************************************************************************************************************************************************************

“分蛋糕原则”是另一种原则;即决策者为其决策失误负责。如果“拿刀分蛋糕的人”出现偏差,他将拿到那个最小的一块,这使得他尽力做到每块一样大。但“分蛋糕原则”有一个致命伤;谁第一个拿蛋糕?次序是由谁决定的?因为分配与操作分离,使得操作领域出现的问题,无法在分配领域合理解决。如果长期得不到解决方案,我们必然看到如下弊端:“拿刀分蛋糕的人”分一个特大块,其它尽力平等。在排序过程中,他把儿子排第一,结果那个最大快就落到自家了。这使得操作者为自己的“失误”得到好处。自由原则在“分蛋糕原则”中没有得到体现。严格地说“分蛋糕原则”只适用于两个人之间的利益冲突。但分饼方法适用于任意人数的利益冲突,向股票市场,拍卖市场等。

2. 屋外有三个开关,控制屋内三盏灯,只可进屋一次,怎样确定哪个开关对应哪盏灯?

开2个开关 过5分钟关1个 进去 用手摸 热的是刚关的~亮的是开着的~暗的就是剩下的一个

3. 问题:每架飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有加油机),一箱油可供一架飞机绕地球飞半圈。

问:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?

(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场。)

可以把起点看作0,半圈看作“1”,一圈看作“2”,至少出动三架飞机。可把三架飞机标号为1,2,3号,先1,2,3三架同时起飞,1号飞到1/4处把1/2油分别给2,3号加满,返回,2号飞到1/2处,把1/4油给3号加满,留1/2油自己返回,3号油箱满,可飞到3/2处,油箱空.在3号飞机到达全程一半处,1号2号已返回机场,再加满油同时起飞反方向去接3号飞机。1和2号飞到7/4处时,1把2加满返回,2到3/2处时,3也到达该处,(这时1号也刚好返回又加满起飞去接3号),这时2号有3/4的油,2把1/4的油加给3号留2/4的油返回,3号可飞到7/4处,这时1号刚好到达,并把1/4的油加给3号,同时返回起点.这样3号飞机绕地球一圈.
(百度贴吧——一个比较变态的答案,前提是飞机够飞赤道半圈的话,如果机场在两极,就有可能2个飞机完成赤道环游)

4. 提供两根绳子 一个火柴 怎么利用它计算45分钟?

当甲烧完后过去了30分钟,因为是两头烧,所以就是30分钟。而乙已经烧了30分钟,还有30分钟的量,此时再点燃乙的D端。双管齐下,剩下的30分钟只烧了15分钟,加上一开始已经烧了30分钟,共45分钟



5. 考虑一个双人游戏。游戏在一个圆桌上进行。每个游戏者都有足够多的硬币。他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能有一部分悬在桌子外面),并且不能与原来放过的硬币重叠。谁没有地方放置新的硬币,谁就输了。游戏的先行者还是后行者有必胜策略?这种策略是什么?

答案:先行者在桌子中心放置一枚硬币,以后的硬币总是放在与后行者刚才放的地方相对称的位置。这样,只要后行者能放,先行者一定也有地方放。先行者必胜。

6. 3、 用线性时间和常数附加空间将一个长度为n的字符串向左循环移动m位(例如,"abcdefg"移动3位就变成了"defgabc")。

答案:把字符串切成长为m和n-m的两半。将这两个部分分别逆序,再对整个字符串逆序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: