zoukankan      html  css  js  c++  java
  • 高难度智力题

    1。海盗分金问题
    传说,从前有五个海盗抢得了100枚金币.他们通过了一个如何确定选用谁的分配方案的安排.即:
    1.抽签决定各人的号码(1,2,3,4,5);
    2.先由1号提出分配方案,然后5个人表决.当且仅当超过半数人同意时,方案才算被通过,否则他将被扔入大海喂鲨鱼;
    3.当1号死后,再由2号提方案,4个人表决,当且仅当超过半数同意时,方案才算通过,否则2号同样将被扔入大海喂鲨鱼;
    4.往下依次类推……
    根据上面的这个故事,现在提出如下的一个问题.即:
    我们假定每个海盗都是很聪明的人,并且都能够很理智地判断自己的得失,从而做出最佳的选择,那么第一个海盗应当提出怎样的分配方案才能够使自己不被扔入大海喂鲨鱼,而且收益还能达到最大化呢?

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

    3。称球问题:
    一共12个一样的小球, 其中只有一个重量与其它不一样(未知轻重),给你一个天平, 只称三次, 找出那个不同重量的球?
    如果一共13个一样的小球, 其中只有一个重量与其它不一样(未知轻重),给你一个天平, 只称三次, 找出那个不同重量的球?

    4。分金条问题:
    你让某些人为你工作了七天, 你要用一根金条作为报酬。这根金条要被分成七块。你必须在每天的活干完后交给他们一块。如果你只能将这根金条切割两次,你怎样给这些工人分?

    5。猴子搬香蕉问题:
    一个小猴子边上有100根香蕉,它要走过50米才能到家,每次它最多搬50根香蕉,每走1米就要吃掉一根,请问它最多能把多少根香蕉搬到家里。

    6。飞机加油问题:
    每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈。
    为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)

    7。硬币游戏:
    16个硬币,A和B轮流拿走一些,每次拿走的个数只能是1,2,4中的一个数。
    谁最后拿硬币谁输。
    问:A或B有无策略保证自己赢?

    8。倒水问题:
    也可以说是倒酒:)有三个酒杯,其中两个大酒杯每个可以装8两酒,一个可以装3两酒。现在两个大酒杯都装满了酒,只用这三个杯子怎么把酒平均的分给4个人喝?

    9。帽子问题2:
    有一个牢房,有3个犯人关在其中。因为玻璃很厚,所以3个人只能互相看见,不能听到对方说话的声音。”
    有一天,国王想了一个办法,给他们每个人头上都戴了一顶帽子,只叫他们知道帽子的颜色不是白的就是黑的,不叫他们知道自己所戴帽子的是什么颜色的。在这种情况下,国王宣布两条如下:
    1.谁能看到其他两个犯人戴的都是白帽子,就可以释放谁;
    2.谁知道自己戴的是黑帽子,就释放谁。
    其实,国王给他们戴的都是黑帽子。他们因为被绑,看不见自己罢了。于是他们3个人互相盯着不说话。可是不久,心眼灵的A用推理的方法,认定自己戴的是黑帽子。您想,他是怎样推断的?

    10。年龄问题:
    一普查員問一女人,“你有多少個孩子,他們多少歲?”女人回答:“我有三個孩子,他們的歲數相乘是36,歲數相加就等於隔離間屋的門牌號碼.”普查員立刻走到隔鄰,看了一看,回來說:”我還需要多少資料.”女人回答:“我現在很忙,我最大的孩子正在樓上睡覺.”普查員說:”謝謝,我己知道了
    問題:那三個孩子的歲數是多少。

    答案:
    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号能够获取最大收益的方案了!
    参考文章:
    凶猛海盗的逻辑
    (本帖改编自《科学美国人》杂志中IanStewart的《凶猛海盗的逻辑》)
    海盗,大家听说过吧。这是一帮亡命之徒,在海上抢人钱财,夺人性
    命,干的是刀头上舔血的营生。在我们的印象中,他们一般都瞎一只
    眼,用条黑布或者讲究点的用个黑皮眼罩把坏眼遮上。他们还有在地
    下埋宝的好习惯,而且总要画上一张藏宝图,以方便后人掘取。不过
    大家是否知道,他们是世界上最民主的团体。参加海盗的都是桀骜不
    驯的汉子,是不愿听人命令的,船上平时一切事都由投票解决。船长
    的唯一特权,是有自己的一套餐具--可是在他不用时,其他海盗是
    可以借来用的。船上的唯一惩罚,就是被丢到海里去喂鱼。
    现在船上有若干个海盗,要分抢来的若干枚金币。自然,这样的问题
    他们是由投票来解决的。投票的规则如下:先由最凶猛的海盗来提出
    分配方案,然后大家一人一票表决,如果有50%或以上的海盗同意这个
    方案,那么就以此方案分配,如果少于50%的海盗同意,那么这个提出
    方案的海盗就将被丢到海里去喂鱼,然后由剩下的海盗中最凶猛的那
    个海盗提出方案,依此类推。
    我们先要对海盗们作一些假设。
    1)每个海盗的凶猛性都不同,而且所有海盗都知道别人的凶猛性,也
    就是说,每个海盗都知道自己和别人在这个提出方案的序列中的位置。
    另外,每个海盗的数学和逻辑都很好,而且很理智。最后,海盗间私
    底下的交易是不存在的,因为海盗除了自己谁都不相信。
    2)一枚金币是不能被分割的,不可以你半枚我半枚。
    3)每个海盗当然不愿意自己被丢到海里去喂鱼,这是最重要的。
    4)每个海盗当然希望自己能得到尽可能多的金币。
    5)每个海盗都是现实主义者,如果在一个方案中他得到了1枚金币,而
    下一个方案中,他有两种可能,一种得到许多金币,一种得不到金币,
    他会同意目前这个方案,而不会有侥幸心理。总而言之,他们相信二
    鸟在林,不如一鸟在手。
    6)最后,每个海盗都很喜欢其他海盗被丢到海里去喂鱼。在不损害自
    己利益的前提下,他会尽可能投票让自己的同伴喂鱼。
    现在,如果有10个海盗要分100枚金币,将会怎样?
    要解决这类问题,我们总是从最后的情形向后推,这样我们就知道在
    最后这一步中什么是好的和坏的决定。然后运用这个知识,我们就可
    以得到最后第二步应该作怎样的决定,等等等等。要是直接就从开始
    入手解决问题,我们就很容易被这样的问题挡住去路:"要是我作这
    样的决定,下面一个海盗会怎么做?"
    以这个思路,先考虑只有2个海盗的情况(所有其他的海盗都已经被丢
    到海里去喂鱼了)。记他们为P1和P2,其中P2比较凶猛。P2的最佳方
    案当然是:他自己得100枚金币,P1得0枚。投票时他自己的一票就足
    够50%了。
    往前推一步。现在加一个更凶猛的海盗P3。P1知道--P3知道他知道
    --如果P3的方案被否决了,游戏就会只由P1和P2来继续,而P1就一
    枚金币也得不到。所以P3知道,只要给P1一点点甜头,P1就会同意他
    的方案(当然,如果不给P1一点甜头,反正什么也得不到,P1宁可投
    票让P3去喂鱼)。所以P3的最佳方案是:P1得1枚,P2什么也得不到,
    P3得99枚。
    P4的情况差不多。他只要得两票就可以了,给P2一枚金币就可以让他
    投票赞同这个方案,因为在接下来P3的方案中P2什么也得不到。P5也
    是相同的推理方法只不过他要说服他的两个同伴,于是他给每一个在
    P4方案中什么也得不到的P1和P3一枚金币,自己留下98枚。
    依此类推,P10的最佳方案是:他自己得96枚,给每一个在P9方案中什
    么也得不到的P2,P4,P6和P8一枚金币。
    下面是以上推理的一个表(Y表示同意,N表示反对):
    P1 P2
    0 100
    N Y
    P1 P2 P3
    1 0 99
    Y N Y
    P1 P2 P3 P4
    0 1 0 99
    N Y N Y
    P1 P2 P3 P4 P5
    1 0 1 0 98
    Y N Y N Y
    ……
    P1 P2 P3 P4 P5 P6 P7 P8 P9 P10
    0 1 0 1 0 1 0 1 0 96
    N Y N Y N Y N Y N Y
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    现在我们将海盗分金问题推广:
    1)改变一下规则,投票中方案必须得到超过50%的票数(只得到50%票
    数的方案的提出者也会被丢到海里去喂鱼),那么如何解决10个海盗
    分100枚金币的问题?
    2)不改变规则,如果让500个海盗分100枚金币,会发生什么?
    3)如果每个海盗都有1枚金币的储蓄,他可以把这枚金币用在分配方案
    中,如果他被丢到海里去喂鱼,那么他的储蓄将被并在要分配的金币
    堆中,这时候又怎样?
    通过对规则的细小改变,海盗分金问题可以有许多变化,但是最有趣
    的大概是1)和2)(规则仍为50%票数即可)的情况,本帖只对这两种情
    况进行讨论。
    首先考虑1)。现在只有P1和P2的情形变得对P2其糟无比:1票是不够的,
    可是就算他把100枚金币都给P1,P1也照样会把他丢到海里去。可是P2
    很关键,因为如果P3进行分配方案的话,即使他一枚金币也不给P2,
    P2也会同意,这样一来P3就有P2这张铁票!P3的最佳方案就是:独吞
    100枚金币。
    P4要3张票,而P3是一定反对他的,而如果不给P2一点甜头,P2也会反
    对,因为P2可以在P3的方案中得救,目前为什么不把P4丢到海里呢?
    所以要分别给P1和P2一枚金币,这样P4就有包括他自己1票的3票。P4
    的方案为:P1,P2每人1枚金币,他自己98枚。
    P5的情况要复杂点,他也要3票。P4是会反对他的,所以不用给,给
    P3一枚金币就能使他支持自己的方案,因为在接下来的P4方案中他什
    么也得不到。问题是P1和P2:只要其中有一个支持就可以了。可是只
    给1枚金币是不行的,P4方案中他们一定有1枚金币可得,所以只要在
    他们中随便选一个,给2枚金币,另一个就对不起了,不给。这样P5
    的方案是:自己97枚,P3得1枚,P1或P2得2枚。
    P6的方案建立在P5的上面,只要给每个P5方案中不得益的海盗1枚金币。
    要注意的是,P1和P2都应该看作在P5方案中不得益的:他们可能得2枚,
    可是也可能1枚不得,所以只要P6给他们1枚金币,根据"二鸟在林,
    不如一鸟在手"的原则,就可以让他们支持P6的方案。所以P6的方案
    是唯一的:P1,P2,P4每人1枚金币,P6自己拿97枚。
    这样继续下去,P9的方案是:P3,P5,P7每人1枚金币,然后在P1,
    P2,P4,P6中任选一人给2枚金币,P9自己得95枚。最后,P10的方案
    是唯一的:P1,P2,P4,P6,P8每人1枚金币,P10自己得95枚。
    2)是最有趣的(提醒:我们回到50%票即可的规则)。原题解中的推理
    过程直到200个海盗都是成立的:P200给每个偶数号的海盗1枚金币,
    包括他自己,其他海盗什么也得不到。从P201开始,继续推理就变得
    有点困难了:P201为了不被丢到海里去,必须什么也不留给自己,而
    给从P1到P199中所有奇数号海盗每人1枚金币,从而争取到100票,加
    上他自己1票,逃过一劫。P202也什么都得不到,他必须用这100枚金
    币买通100个从P201的方案中什么也得不到的海盗,要注意到现在这个
    方案不是唯一的:P201的方案中得不到金币的海盗是所有奇数号的海
    盗,有101个(包括P201),所以有101种方案。
    P203必须得到102票,除了自己的1票外,他只有100枚金币,所以只能
    买到100票,所以可怜的家伙就被丢到海里喂鱼了。但是,P203是个很
    重要的角色,因为P204知道如果自己的方案不被通过,P203也一样会
    完蛋,所以他有P203的一张铁票。所以P204可以大出一口气:他自己
    一票,加上P203一票,然后加上用100枚金币买的确100票,他就得救
    了!100个有幸得到1枚金币的海盗,可以是P1到P202中任何100个:因
    为其中的偶数号的从P202的方案中什么也得不到,如果P204给他们中
    某个海盗1枚金币,这个海盗一定会赞同这个方案;而编号为奇数的海
    盗呢,只是有可能从P202的方案中得益罢了(可能性为100/101),所
    以根据"二鸟在林,不如一鸟在手"的原则,如果能得到1枚金币,他
    也会赞同这个方案。
    接下去P205是不能把希望放在P203和P204这两张票上的,因为就算他
    被丢到海里去,P203和P204还可以通过P204的方案机会活下来。P206
    虽然可以靠P205的铁票,加上自己1票和100枚金币搞到的100票,只有
    102票,所以他也被丢到海里喂鱼。P207好不了多少,他需要104票,
    而他自己以及P205和P206的铁票加上100枚金币搞到的100票只有103票
    --只好下海。
    P208运气比较好,他同样也要104票,可是P205,P206,P207都会投票
    赞成他的方案!加上他自己的1票和买来的100票,他终于逃脱了做鱼
    食的命运。
    这样我们就有了一种可以一直推下去的新逻辑。海盗可以什么也不留
    给自己,买上100票,然后依靠一部分一定会被丢下海的海盗的铁票,
    从而让自己的方案通过。有这样运气的海盗分别是P201,P202,P204,
    P208,P216,P232,P264,P328和P456……我们看到这样的号码是200
    加上一个2的次幂。
    哪些海盗是受益者呢,显然铁票是不用(不能)给金币的。所以只有
    上一个幸运号码及他以前的那些海盗才有可能得到1枚金币。于是我们
    得到500海盗分100枚金币的结论是:前44个最凶猛的海盗被丢进海里,
    然后P456给P1到P328中的100个海盗每人1枚金币。
    就这样,最凶猛的海盗被丢进海里,而比较凶猛的什么也得不到,而
    只有最温柔的那些海盗,才有可能得到1枚金币。正如《马太福音》所
    说:"温柔的人有福了,因为他们必承受地土!"(太5:5)

    2。假如只有一个人戴黑帽子,那他看到所有人都戴白帽,在第一次关灯时就应自打耳光,所以应该不止一个人戴黑帽子;如果有两顶黑帽子,第一次两人都只看到对方头上的黑帽子,不敢确定自己的颜色,但到第二次关灯,这两人应该明白,如果自己戴着白帽,那对方早在上一次就应打耳光了,因此自己戴的也是黑帽子―――于是也会有耳光响起;可事实是第三次才响起耳光声,说明全场不止两顶黑帽,依此类推,应该是关几次灯,有几顶黑帽。

    3。分3堆,每堆4个,第一次称任意两堆,如果第一次平衡,那么坏球就在剩下的4个中
    拿出3个和3个正常的称,如果比正常的重,坏的球就是重球,如果轻,坏的球就是轻球,这个就是3个中有一个知道轻重的坏球的情况,可以用一次称出。如果和正常的平衡,那么就知道剩下那个是坏的了,而且还有一次,可以确定是轻是重。
    分3堆,每堆4个,如果不平衡,且左边重,将左面盘里的任意3个球拿出,在将右面盘里任取3个放入左盘,最后将剩下的一堆中取3个放在右盘,此时有3种情况,1)左边仍重,则原来左盘剩下的1个球是重的或原来右盘剩下一个的球是轻的,再称一下即可判断。2)平衡,则前一步从左盘换下来的3个球有一个是重的。3)右盘重,则前一步从右盘移至左盘的球有一个是轻的。

    4。1/7,2/7,4/7,第一天给1/7,第二天拿2/7换1/7………………

    5。设小猴从0走到50,到A点时候他可以直接抱香蕉回家了,可是到A点时候他至少消耗了3A的香蕉(到A,回0,到A),一个限制就是小猴只能抱50只香蕉,那么在A点小猴最多49只香蕉.100-3A=49,所以A=17. 这样折腾完到家的时候香蕉剩100-3A-(50-A)=50-2A=16.

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

    7。剩2个时,取1个必胜;
    剩3个时,取2个必胜;
    剩4个时,如果对手足够聪明则必败;
    剩5个时,去1个必胜...
    记作 2(1) 3(2) 4(x) 5(1) 6(2) 7(x) 8(1) ...
    从中找出规律:
    当剩余个数K=3N-2,N为自然数时,只要对手足够聪明则必败.
    当K=3N-1时,有必胜策略: 取1个;
    当K=3N时,有必胜策略:取2个;
    所以,当16个时,后取者有必胜策略.

    8。用一个三位数表示三个杯,880,前两个为8升的杯最后一个3升。开始:880_853A喝掉3升变为:850_823_B喝掉2升为:803_830_533_560_263_281A喝掉1升(A已经喝4升完毕)为:280_253_550_523_820_802_703_730_433_460_163_181CD各喝一升为:080_053_350_323CD各喝3升B喝2升,分水结束,ABCD四人各喝4升。

    9。现在假设3个犯人是A、B和我
    那么我的推断是:
    第一种:我戴的是白帽子
    那么A会这么想:如果自己戴的是白帽子,那么B就会看到2个白帽子,那么他根据国王的第一条就马上会被释放,但是B现在没有被释放,说明我戴的不是白的,是黑的,哈哈,我知道自己是黑的拉,我可以要求国王释放我拉
    结论:如果我戴的是白帽子,那么根据A犯人的想法得出:A和B必然有一个会被释放,但是现在2个人都没有被释放,所以我一定不是白的,而是黑的,所以我会知道自己是黑的,要求国王释放我,这样,我就被放了
    同理,A和B根据别人的想法也都算出自己是黑帽子,这样3个犯人同时被释放

    10。 9,2,2
    分析,设三个人的年龄组成自然数组合(x,y,z),一共三个条件,
    条件一:三个人岁数乘起来为36;选出满足x*y*z=36的组合;
    条件二:知道三个人岁数之和后还是不能确定它们的年龄;从上面的到的组合中找出xyz之和有相同的组合;
    只有 (9,2,2)=13,(6,6,1)=13
    条件三:三个孩子中有一个年龄比其他两个大。符合条件的组合只有(9,2,2)

  • 相关阅读:
    call、apply、bind函数的理解以及手写。
    父div里两个子div(inline-block),为什么两个子div中间会有小缝隙,如何解决?
    手写柯里化
    arguments的理解
    New
    BFC
    useCallBack和useMemo的用法
    观察者模式和发布订阅模式
    grid布局
    Android常见输入法的包名和主类名
  • 原文地址:https://www.cnblogs.com/lixiaochao/p/5651331.html
Copyright © 2011-2022 走看看